home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1996 #14 / Monster Media No. 14 (April 1996) (Monster Media, Inc.).ISO / prog_gen / inter49c.zip / INTERRUP.L < prev    next >
Text File  |  1996-02-11  |  355KB  |  9,267 lines

  1. Interrupt List, part 12 of 14
  2. Copyright (c) 1989,1990,1991,1992,1993,1994,1995,1996 Ralf Brown
  3. --------*-62---------------------------------
  4. INT 62 - reserved for user interrupt
  5. --------d-62---------------------------------
  6. INT 62 - Adaptec and OMTI controllers - DRIVE 0 DATA
  7. Notes:    this vector stores the third four bytes of the parameter table for
  8.       hard disk 0
  9. SeeAlso: INT 60"Adaptec",INT 61"Adaptec",INT 63"Adaptec"
  10. --------b-62---------------------------------
  11. INT 62 - TI Professional PC - OPTION ROM DATA AREA POINTER (NOT A VECTOR!)
  12. Desc:    the low word of this vector contains the segment of the RAM data area
  13.       to be used by the expansion ROM at F400h:2000h, and the high word
  14.       contains the length of the data area; this segment and size are
  15.       both set to 0000h if no ROM is installed at F400h:2000h
  16. SeeAlso: INT 61"TI Professional PC",INT 63"TI Professional"
  17. SeeAlso: INT 66"TI Professional PC"
  18. --------b-62---------------------------------
  19. INT 62 - HP 95LX - USED BY CALCULATOR
  20. SeeAlso: INT 60"HP 95LX"
  21. ----------62---------------------------------
  22. INT 62 - MS SQL Server/Sybase DBLIBRARY interface - ???
  23.     AH = function (00h to 07h)
  24.     CX = FFFEh
  25.     DX = FFFFh
  26.     ???
  27. Return: ???
  28. Note:    the installation check consists of testing for the string "DBLIBRARY"
  29.       2 bytes past the interrupt handler
  30. SeeAlso: AH=08h"SQL"
  31. Index:    installation check;MS SQL Server|installation check;Sybase DBLIBRARY
  32. ----------62---------------------------------
  33. INT 62 - MPAUSE - ???
  34.     details not yet avialable
  35. Program: MPAUSE is a program by Manfred Michael which appeared in the German
  36.      _EGA-Handbuch_ from  m&t-Verlag
  37. --------N-62---------------------------------
  38. INT 62 - XFS v1.76 - FILTERED PACKET DRIVER API
  39. Program: XFS is a shareware Network File System client by Robert Juhasz
  40. Desc:    XFS requires a packet driver to operate.  Since it does redirections,
  41.       etc., it provides its own packet driver entry point, changing the
  42.       signature string of the original packet driver to "XKT DRVR" so that
  43.       it will no longer be found by the packet driver installation check
  44. Range:    INT 61 to INT 66, selected by scanning for two consecutive free
  45.       vectors and hooking the second
  46. Note:    the installation check for this vector is the same as that for the
  47.       packet driver specification: scan for the signature string "PKT DRVR"
  48.       three bytes past the interrupt handler
  49. SeeAlso: INT 60"Packet Driver",INT 61"XFS"
  50. ----------62---------------------------------
  51. INT 62 - PC-DRAFT - PRIMARY DISPLAY DRIVER
  52.     ???
  53. Return: ???
  54. Program: PC-DRAFT is a powerful CAD environment by rhv.
  55. SeeAlso: INT 64"PC-DRAFT",INT 65"PC-DRAFT",INT 66"PC-DRAFT",INT 67"PC-DRAFT"
  56. --------N-6200-------------------------------
  57. INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - GET PHYSICAL HARDWARE ADDRESS
  58.     AH = 00h
  59.     DS:DX -> 6-byte buffer for address
  60. Return: AX = length of hardware address???
  61. Range:    INT 4C to INT FB, selected by configuration
  62. Note:    the Beame&Whiteside TCP/IP protocol stack uses two consecutive
  63.       interrupts (62h and 63h by default); the BW-NFS client uses a third
  64.       consecutive interrupt (64h by default) if it is loaded
  65. SeeAlso: AH=01h"ETHDEV",AH=04h"ETHDEV",AH=09h"ETHDEV",AH=0Eh"ETHDEV"
  66. SeeAlso: AH=14h"ETHDEV",AH=18h"ETHDEV",AH=FEh,INT 21/AH=3Fh"BW-TCP"
  67. SeeAlso: INT 63"BW-TCP",INT 64"BW-NFS"
  68. --------V-620000-----------------------------
  69. INT 62 u - FGDRIVER v3.03+ - "FG_ALLOCATE" - CREATE VIRTUAL VIDEO PAGE
  70.     AX = 0000h
  71.     BX = page number (0000h-003Fh)
  72. Return: AX = status (0000h,0001h,0007h,0008h) (see #2603)
  73. Program: FGDRIVER is the external video driver for the shareware
  74.       Fastgraph/Light by Ted Gruber Software
  75. Notes:    the FGDRIVER functions are rearranged with each major release, but
  76.       their parameters do not change (see #2604)
  77.     The amount of memory required by the virtual video page depends on the
  78.       current video mode
  79.     The installation check consists of testing for the signature "FG" ten
  80.       bytes beyond the start of the interrupt handler
  81. SeeAlso: AX=0001h,AX=0002h,AX=0003h,AX=0038h
  82. Index:    installation check;Fastgraph/Light
  83.  
  84. (Table 2603)
  85. Values for FGDRIVER status:
  86.  0000h    successful
  87.  0001h    specified page is a physical or logical page
  88.  0007h    virtual page created/released, but memory control blocks corrupted
  89.  0008h    not enough memory
  90.  0009h    attempt to free a page which was never created
  91.  FFFCh    insufficient memory
  92.  FFFDh    page already created, or exists as physical or virtual page
  93.  FFFEh    invalid page number
  94.  FFFFh    memory manager not initialized
  95. SeeAlso: #2604
  96.  
  97. (Table 2604)
  98. Values for FGDRIVER functions (by driver version):
  99. Name        v1.10    v3.03    v4.02
  100.  FG_ALLOCATE    0042h    0000h    0000h
  101.  FG_ALLOCCMS    009Dh    0001h    0001h
  102.  FG_ALLOCEMS    009Eh    0002h    0002h
  103.  FG_ALLOCXMS    009Fh    0003h    0003h
  104.  FG_AUTOMODE    0004h    0004h    0004h
  105.  FG_BESTMODE    0003h    0005h    0005h
  106.  FG_BOX        00A2h    0006h    0006h
  107.  FG_BOXDEPTH    00A3h    0007h    0007h
  108.  FG_BOXX     --    0008h    0008h
  109.  FG_BUTTON    0078h    0009h    0009h
  110.  FG_CAPSLOCK    0070h    000Ah    000Ah
  111.  FG_CHGATTR    0035h    000Bh    000Bh
  112.  FG_CHGTEXT    0036h    000Ch    000Ch
  113.  FG_CIRCLE    0030h    000Dh    000Dh
  114.  FG_CIRCLEF     --    000Eh    000Eh
  115.  FG_CLIPMAP     --     --    000Fh
  116.  FG_CLIPMASK    0052h    000Fh    0010h
  117.  FG_CLPIMAGE    004Ah    0010h    0011h
  118.  FG_CLPRECT    002Bh    0011h    0012h
  119.  FG_COLORS     --     --    0013h
  120.  FG_COPYPAGE    005Fh    0012h    0014h
  121.  FG_CURSOR    0007h    0013h    0015h
  122.  FG_DASH    0027h    0014h    0016h
  123.  FG_DASHREL    0028h    0015h    0017h
  124.  FG_DEFCOLOR    0014h    0016h    0018h
  125.  FG_DEFPAGES     --    0017h    0019h
  126.  FG_DISPFILE    004Fh    0018h    001Ah
  127.  FG_DISPLAY    004Dh    0019h    001Bh
  128.  FG_DISPLAYP    004Eh    001Ah    001Ch
  129.  FG_DISPPCX    0060h     --     --
  130.  FG_DRAW    0025h    001Bh    001Dh
  131.  FG_DRAWMAP    0047h    001Ch    001Eh
  132.  FG_DRAWMASK    0051h    001Dh    001Fh
  133.  FG_DRAWREL    0026h    001Eh    0020h
  134.  FG_DRAWRELX     --    001Fh    0021h
  135.  FG_DRAWX     --    0020h    0022h
  136.  FG_DRECT    002Ch    0021h    0023h
  137.  FG_DRWIMAGE    0049h    0022h    0024h
  138.  FG_EGACHECK    0005h    0023h    0025h
  139.  FG_ELLIPSE    002Dh    0024h    0026h
  140.  FG_ELLIPSEF     --    0025h    0027h
  141.  FG_ERASE    001Eh    0026h    0028h
  142.  FG_FADEIN    0064h    0027h    0029h
  143.  FG_FADEOUT    0065h    0028h    002Ah
  144.  FG_FILLPAGE     --    0029h    002Bh
  145.  FG_FINDPAGE     --     --    002Ch
  146.  FG_FLICDONE     --     --    002Dh
  147.  FG_FLICHEAD     --     --    002Eh
  148.  FG_FLICMODE     --     --    002Fh
  149.  FG_FLICOPEN     --     --    0030h
  150.  FG_FLICPLAY     --     --    0031h
  151.  FG_FLICSIZE     --     --    0032h
  152.  FG_FLICSKIP     --     --    0033h
  153.  FG_FLIPMASK    0054h    002Ah    0034h
  154.  FG_FLOOD     --    002Bh    0035h
  155.  FG_FLPIMAGE    004Ch    002Ch    0036h
  156.  FG_FONTSIZE     --    002Dh    0037h
  157.  FG_FREEPAGE    0043h    002Eh    0038h
  158.  FG_GETADDR    0044h    002Fh    0039h
  159.  FG_GETATTR    0037h    0030h    003Ah
  160.  FG_GETBANKS     --     --    003Bh
  161.  FG_GETBLOCK     --    0031h    003Ch
  162.  FG_GETCHAR    0038h    0032h    003Dh
  163.  FG_GETCLIP     --     --    003Eh
  164.  FG_GETCLOCK    0099h    0033h    003Fh
  165.  FG_GETCOLOR    0015h    0034h    0040h
  166.  FG_GETDACS    00A4h    0035h    0041h
  167.  FG_GETENTRY     --    0036h    0042h
  168.  FG_GETHPAGE    0040h    0037h    0043h
  169.  FG_GETIMAGE    0048h    0038h    0044h
  170.  FG_GETINDEX    0016h    0039h    0045h
  171.  FG_GETKEY    006Eh    003Ah    0046h
  172.  FG_GETLINES    0010h    003Bh    0047h
  173.  FG_GETMAP    0046h    003Ch    0048h
  174.  FG_GETMAXX    000Ah    003Dh    0049h
  175.  FG_GETMAXY    000Bh    003Eh    004Ah
  176.  FG_GETMODE    0000h    003Fh    004Bh
  177.  FG_GETPAGE    003Ch    0040h    004Ch
  178.  FG_GETPIXEL    0020h    0041h    004Dh
  179.  FG_GETRGB    001Ch    0042h    004Eh
  180.  FG_GETVIEW     --     --    004Fh
  181.  FG_GETVPAGE    003Eh    0043h    0050h
  182.  FG_GETXBOX     --     --    0051h
  183.  FG_GETXJOY    0076h    0044h    0052h
  184.  FG_GETXJUST     --     --    0053h
  185.  FG_GETXPOS    0021h    0045h    0054h
  186.  FG_GETYBOX     --     --    0055h
  187.  FG_GETYJOY    0077h    0046h    0056h
  188.  FG_GETYJUST     --     --    0057h
  189.  FG_GETYPOS    0022h    0047h    0058h
  190.  FG_HUSH    008Eh    0048h    0059h
  191.  FG_HUSHNEXT    008Fh    0049h    005Ah
  192.  FG_IMAGEBUF     --    004Ah    005Bh
  193.  FG_IMAGESIZ    0062h    004Bh    005Ch
  194.  FG_INITEMS    00A0h    004Ch    005Dh
  195.  FG_INITJOY    0075h    004Dh    005Eh
  196.  FG_INITPM     --     --    005Fh??? (NOP in v4.02)
  197.  FG_INITXMS    00A1h    004Eh    0060h
  198.  FG_INSIDE     --    004Fh    0061h
  199.  FG_INTJOY    0079h    0050h    0062h
  200.  FG_INTKEY    006Fh    0051h    0063h
  201.  FG_INVERT     --     --    0064h
  202.  FG_JUSTIFY     --    0052h    0065h
  203.  FG_KBINIT     --    0053h    0066h
  204.  FG_KBLAST     --     --    0067h
  205.  FG_KBRESET     --     --    0068h
  206.  FG_KBTEST     --    0054h    0069h
  207.  FG_LOADPCX     --     --    006Ah
  208.  FG_LOCATE    0033h    0055h    006Bh
  209.  FG_MAKEPCX    0061h    0057h    006Ch
  210.  FG_MAKEPPR     --    0058h    006Dh
  211.  FG_MAKESPR     --    0059h    006Eh
  212.  FG_MAPRGB    001Dh    005Ah    006Fh
  213.  FG_MEASURE    0098h    005Bh    0070h
  214.  FG_MEMAVAIL    009Bh    005Ch    0071h
  215.  FG_MEMORY     --    005Dh    0072h
  216.  FG_MOUSE256     --     --    0073h
  217.  FG_MOUSEBUT    007Ch    005Eh    0074h
  218.  FG_MOUSECUR    007Eh    005Fh    0075h
  219.  FG_MOUSEFIN     --    0060h    0076h
  220.  FG_MOUSEINI    007Ah    0061h    0077h
  221.  FG_MOUSELIM    0080h    0062h    0078h
  222.  FG_MOUSEMOV    0081h    0063h    0079h
  223.  FG_MOUSEPOS    007Dh    0064h    007Ah
  224.  FG_MOUSEPTR    007Fh    0065h    007Bh
  225.  FG_MOUSESPD    0082h    0066h    007Ch
  226.  FG_MOUSEVIS    007Bh    0067h    007Dh
  227.  FG_MOVE    0023h    0068h    007Eh
  228.  FG_MOVEREL    0024h    0069h    007Fh
  229.  FG_MUSIC    008Ch    006Ah    0080h
  230.  FG_MUSICB    008Dh    006Bh    0081h
  231.  FG_NUMLOCK    0072h    006Ch    0082h
  232.  FG_PACK     --     --    0083h
  233.  FG_PAGESIZE     --    006Dh    0084h
  234.  FG_PAINT    002Fh    006Eh    0085h
  235.  FG_PALETTE    0017h    006Fh    0086h
  236.  FG_PALETTES    0018h    0070h    0087h
  237.  FG_PAN        0066h    0071h    0088h
  238.  FG_PATTERN    0050h    0072h    0089h
  239.  FG_PCXHEAD     --    0073h    008Ah
  240.  FG_PCXMODE     --    0074h    008Bh
  241.  FG_PCXPAL     --     --    008Ch
  242.  FG_PCXRANGE     --     --    008Dh
  243.  FG_PLAYING    0091h    0075h    008Eh
  244.  FG_POINT    001Fh    0076h    008Fh
  245.  FG_POINTX     --    0077h    0090h
  246.  FG_POLYEDGE     --     --    0091h
  247.  FG_POLYFILL     --    0078h    0092h
  248.  FG_POLYGON    002Eh    0079h    0093h
  249.  FG_POLYLINE     --    007Ah    0094h
  250.  FG_POLYOFF     --    007Bh    0095h
  251.  FG_PRINT     --    007Ch    0096h
  252.  FG_PRINTC     --     --    0097h
  253.  FG_PUTBLOCK     --    007Dh    0098h
  254.  FG_PUTIMAGE     --    007Eh    0099h
  255.  FG_QUIET    0090h    007Fh    009Ah
  256.  FG_RECT    002Ah    0080h    009Bh
  257.  FG_RESET    0006h    0081h    009Ch
  258.  FG_RESIZE    0045h    0082h    009Dh
  259.  FG_RESTORE    005Bh    0083h    009Eh
  260.  FG_RESUME    0092h    0084h    009Fh
  261.  FG_REVIMAGE    004Bh    0085h    00A0h
  262.  FG_REVMASK    0053h    0086h    00A1h
  263.  FG_SAVE     --    0087h    00A2h
  264.  FG_SCALE     --     --    00A3h
  265.  FG_SCRLOCK    0074h    0088h    00A4h
  266.  FG_SCROLL    0067h    0089h    00A5h
  267.  FG_SETATTR    0019h    008Ah    00A6h
  268.  FG_SETBANKS     --     --    00A7h
  269.  FG_SETCAPS    0071h    008Bh    00A8h
  270.  FG_SETCLIP    0029h    008Ch    00A9h
  271.  FG_SETCOLOR    001Ah    008Dh    00AAh
  272.  FG_SETDACS    00A5h    008Eh    00ABh
  273.  FG_SETENTRY     --    008Fh    00ACh
  274.  FG_SETFUNC    009Ch    0090h    00ADh
  275.  FG_SETHPAGE    0041h    0091h    00AEh
  276.  FG_SETLINES    0011h    0092h    00AFh
  277.  FG_SETMODE    0001h    0093h    00B0h
  278.  FG_SETNUM    0073h    0094h    00B1h
  279.  FG_SETPAGE    003Dh    0095h    00B2h
  280.  FG_SETRGB    001Bh    0096h    00B3h
  281.  FG_SETVIEW     --     --    00B5h
  282.  FG_SETVPAGE    003Fh    0098h    00B6h
  283.  FG_SHEAR     --     --    00B7h
  284.  FG_SHOWFLIC     --     --    00B8h
  285.  FG_SHOWPCX     --    009Ah    00B9h
  286.  FG_SHOWPPR     --    009Bh    00BAh
  287.  FG_SHOWSPR     --    009Ch    00BBh
  288.  FG_SOUND    0088h    009Dh    00BCh
  289.  FG_SOUNDS    0089h    009Eh    00BDh
  290.  FG_SPLIT     --     --    00BEh
  291.  FG_STALL    0097h    009Fh    00BFh
  292.  FG_SUSPEND    0093h    00A0h    00C0h
  293.  FG_SVGAINIT     --    00A1h    00C1h
  294.  FG_SVGASTAT     --    00A2h    00C2h
  295.  FG_SVGAVER     --    00A3h    00C3h
  296.  FG_TCDEFINE     --    00A4h    00C4h
  297.  FG_TCMASK    005Eh    00A5h    00C5h
  298.  FG_TCXFER    005Dh    00A6h    00C6h
  299.  FG_TESTMODE    0002h    00A7h    00C7h
  300.  FG_TEXT    0032h    00A8h    00C8h
  301.  FG_TEXTC     --     --    00C9h
  302.  FG_TRANSFER    005Ch    00A9h    00CAh
  303.  FG_UNPACK     --     --    00CBh
  304.  FG_VBADDR     --     --    00CCh
  305.  FG_VBALLOC     --     --    00CDh
  306.  FG_VBCLOSE     --     --    00CEh
  307.  FG_VBCOPY     --     --    00CFh
  308.  FG_VBCUT     --     --    00D0h
  309.  FG_VBDEFINE     --     --    00D1h
  310.  FG_VBFREE     --     --    00D2h
  311.  FG_VBHANDLE     --     --    00D3h
  312.  FG_VBINIT     --     --    00D4h
  313.  FG_VBOPEN     --     --    00D5h
  314.  FG_VBPASTE     --     --    00D6h
  315.  FG_VBTCCOPY     --     --    00D7h
  316.  FG_VBTCXFER     --     --    00D8h
  317.  FG_VBUNDEF     --     --    00D9h
  318.  FG_VGASTATE     --     --    00DAh
  319.  FG_VOICE    008Ah    00AAh    00DBh
  320.  FG_VOICES    008Bh    00ABh    00DCh
  321.  FG_WAITFOR    0096h    00ACh    00DDh
  322.  FG_WAITKEY    006Dh    00ADh    00DEh
  323.  FG_WAITVR     --    00AEh    00DFh
  324.  FG_WHERE    0034h    00AFh    00E0h
  325.  FG_XALPHA    000Ch    00B0h    00E1h
  326.  FG_XCONVERT    000Eh    00B1h    00E2h
  327.  FG_XVIEW     --     --    00E3h
  328.  FG_YALPHA    000Dh    00B2h    00E4h
  329.  FG_YCONVERT    000Fh    00B3h    00E5h
  330.  FG_YVIEW     --     --    00E6h
  331. SeeAlso: #2603
  332. --------V-620001-----------------------------
  333. INT 62 u - FGDRIVER v3.03+ - "FG_ALLOCCMS" - CREATE LOGICAL VIDEO PAGE (CONV)
  334.     AX = 0001h
  335.     BX = page number (0001h-003Fh)
  336. Return: AX = status (0000h,FFFCh,FFFDh,FFFEh) (see #2603)
  337. Notes:    the FGDRIVER functions are rearranged with each major release, but
  338.       their parameters do not change (see #2604)
  339.     The only operation which is allowed on logical pages is "FG_COPYPAGE"
  340.       (see AX=0014h)
  341. SeeAlso: AX=0000h,AX=0002h,AX=0003h,AX=0014h,AX=0038h
  342. --------V-620002-----------------------------
  343. INT 62 u - FGDRIVER v3.03+ - "FG_ALLOCEMS" - CREATE LOGICAL VIDEO PAGE (EMS)
  344.     AX = 0002h
  345.     BX = page number (0001h-003Fh)
  346. Return: AX = status (0000h,FFFCh,FFFDh,FFFEh) (see #2603)
  347. Notes:    the FGDRIVER functions are rearranged with each major release, but
  348.       their parameters do not change (see #2604)
  349.     You must first call "FG_INITEMS" (see AX=005Dh) before using this
  350.       function
  351.     The only operation which is allowed on logical pages is "FG_COPYPAGE"
  352.       (see AX=0014h)
  353. SeeAlso: AX=0000h,AX=0001h,AX=0003h,AX=0014h,AX=0038h,AX=005Dh
  354. --------V-620003-----------------------------
  355. INT 62 u - FGDRIVER v3.03+ - "FG_ALLOCXMS" - CREATE LOGICAL VIDEO PAGE (XMS)
  356.     AX = 0003h
  357.     BX = page number (0001h-003Fh)
  358. Return: AX = status (0000h,FFFCh,FFFDh,FFFEh) (see #2603)
  359. Notes:    the FGDRIVER functions are rearranged with each major release, but
  360.       their parameters do not change (see #2604)
  361.     You must first call "FG_INITXMS" (see AX=0060h) before using this
  362.       function
  363.     The only operation which is allowed on logical pages is "FG_COPYPAGE"
  364.       (see AX=0014h)
  365. SeeAlso: AX=0000h,AX=0001h,AX=0002h,AX=0014h,AX=0038h,AX=0060h
  366. --------V-620004-----------------------------
  367. INT 62 u - FGDRIVER 1.10,3.03+ - "FG_AUTOMODE" - GET VIDEO MODE W/MOST FEATURES
  368.     AX = 0004h
  369. Return: AX = proposed video mode number (see #2630 at AX=00B0h)
  370. Program: FGDRIVER is the external video driver for the shareware
  371.       Fastgraph/Light by Ted Gruber Software
  372. Note:    the FGDRIVER functions are rearranged with each major release, but
  373.       their parameters do not change (see #2604)
  374. SeeAlso: AX=0005h,AX=004Bh,AX=00B0h,AX=00C1h,AX=00C7h
  375. --------V-620005-----------------------------
  376. INT 62 u - FGDRIVER v3.03+ - "FG_BESTMODE" - GET BEST VIDEO MODE GIVEN RESOLUTN
  377.     AX = 0005h
  378.     BX = horizontal resolution
  379.     CX = vertical resolution
  380.     DX = number of video pages required (both physical and virtual)
  381. Return: AX = proposed video mode number or FFFFh if no matching video mode
  382. Notes:    the FGDRIVER functions are rearranged with each major release, but
  383.       their parameters do not change (see #2604)
  384.     You must first call "FG_SVGAINIT" (see AX=00C1h) to get SVGA video
  385.       modes
  386. SeeAlso: AX=0004h,AX=004Bh,AX=00B0h,AX=00C1h,AX=00C7h
  387. --------V-620006-----------------------------
  388. INT 62 u - FGDRIVER v3.03+ - "FG_BOX" - DRAW UNFILLED RECTANGLE
  389.     AX = 0006h
  390.     BX = left column
  391.     CX = right column
  392.     DX = top row
  393.     SI = bottom row
  394. Notes:    the FGDRIVER functions are rearranged with each major release, but
  395.       their parameters do not change (see #2604)
  396.     The rectangle is drawn in screen space, respecting the clipping region,
  397.       with edges of the width specified with "FG_BOXDEPTH" (see AX=0007h)
  398.       (default = 1 is set by "FG_SETMODE")
  399.     This function has no effect in text modes
  400. SeeAlso: AX=0007h,AX=0008h,AX=000Ch,AX=0016h,AX=001Dh,AX=0026h,AX=0051h
  401. SeeAlso: AX=0055h,AX=008Fh
  402. --------V-620007-----------------------------
  403. INT 62 u - FGDRIVER v3.03+ - "FG_BOXDEPTH" - SET RECTANGLE BORDER WIDTH
  404.     AX = 0007h
  405.     BX = width of left and right edges in pixels (> 0)
  406.     CX = width of top and bottom edges in pixels (> 0)
  407. Note:    the FGDRIVER functions are rearranged with each major release, but
  408.       their parameters do not change (see #2604)
  409. SeeAlso: AX=0006h,AX=0008h,AX=0051h,AX=0055h
  410. --------V-620008-----------------------------
  411. INT 62 u - FGDRIVER v3.03+ - "FG_BOXX" - XOR HOLLOW RECTANGLE
  412.     AX = 0008h
  413.     BX = left column
  414.     CX = right column
  415.     DX = top row
  416.     SI = bottom row
  417. Notes:    the FGDRIVER functions are rearranged with each major release, but
  418.       their parameters do not change (see #2604)
  419.     The rectangle is XORed into screen space, respecting the clipping
  420.       region, with edges of the width specified with "FG_BOXDEPTH"
  421.       (see AX=0007h) (default = 1 is set by "FG_SETMODE")
  422.     This function has no effect in text modes
  423. SeeAlso: AX=0006h,AX=0007h,AX=0021h,AX=0022h,AX=0051h,AX=0055h,AX=0090h
  424. --------V-620009-----------------------------
  425. INT 62 u - FGDRIVER v3.03+ - "FG_BUTTON" - GET JOYSTICK BUTTON STATE
  426.     AX = 0009h
  427.     BX = joystick number (0001h or 0002h)
  428. Return: AX = button states
  429.         bit 0: top button pressed
  430.         bit 1: bottom button pressed
  431. Note:    the FGDRIVER functions are rearranged with each major release, but
  432.       their parameters do not change (see #2604)
  433. SeeAlso: AX=0052h,AX=0056h,AX=005Eh,AX=0062h,AX=0077h
  434. --------V-62000A-----------------------------
  435. INT 62 u - FGDRIVER v3.03+ - "FG_CAPSLOCK" - GET STATE OF CAPSLOCK KEY
  436.     AX = 000Ah
  437. Return: AX = CapsLock state (0000h off, 0001h on)
  438. Note:    the FGDRIVER functions are rearranged with each major release, but
  439.       their parameters do not change (see #2604)
  440. SeeAlso: AX=0082h,AX=00A4h,AX=00A8h,AX=00B1h
  441. --------V-62000B-----------------------------
  442. INT 62 u - FGDRIVER v3.03+ - "FG_CHGATTR" - APPLY CURRENT TEXT ATTRIB TO CHARS
  443.     AX = 000Bh
  444.     BX = number of characters to recolor
  445. Notes:    the FGDRIVER functions are rearranged with each major release, but
  446.       their parameters do not change (see #2604)
  447.     This call is ignored in graphics modes
  448.     Starting at the current text cursor position, the specified number of
  449.       characters have their attributes to the current text attribute
  450. SeeAlso: AX=000Ch,AX=003Ah,AX=00A6h
  451. --------V-62000C-----------------------------
  452. INT 62 u - FGDRIVER v3.03+ - "FG_CHGTEXT" - DISPLAY STRING AT CURSOR POSITION
  453.     AX = 000Ch
  454.     CX = length of string
  455.     ES:BX -> string to be displayed
  456. Return: text cursor updated
  457. Notes:    the FGDRIVER functions are rearranged with each major release, but
  458.       their parameters do not change (see #2604)
  459.     This call is ignored in graphics modes
  460. SeeAlso: AX=000Bh,AX=0096h
  461. --------V-62000D-----------------------------
  462. INT 62 u - FGDRIVER v3.03+ - "FG_CIRCLE" - DRAW UNFILLED CIRCLE
  463.     AX = 000Dh
  464.     BX = radius in horizontal screen space units (> 0)
  465. Notes:    the FGDRIVER functions are rearranged with each major release, but
  466.       their parameters do not change (see #2604)
  467.     The circle is drawn in screen space, centered at the current graphics
  468.       cursor position
  469.     This call is ignored in text modes
  470. SeeAlso: AX=0006h,AX=0008h,AX=000Eh,AX=0026h,AX=0093h
  471. --------V-62000E-----------------------------
  472. INT 62 u - FGDRIVER v3.03+ - "FG_CIRCLEF" - DRAW FILLED CIRCLE
  473.     AX = 000Eh
  474.     BX = radius in horizontal screen space units (> 0)
  475. Note:    the FGDRIVER functions are rearranged with each major release, but
  476.       their parameters do not change (see #2604)
  477. SeeAlso: AX=0008h,AX=000Dh,AX=0027h,AX=0092h
  478. --------V-62000F-----------------------------
  479. INT 62 u - FGDRIVER v4.02 - "FG_CLIPMAP" - DISPLAY CLIPPED IMAGE (MODE-INDEP)
  480.     AX = 000Fh
  481.     ES:BX -> bitmap
  482.     CX = width
  483.     DX = height
  484. Desc:    display a mode-independent bitmap, showing only the portion within
  485.       the current clipping limits
  486. Notes:    the FGDRIVER functions are rearranged with each major release, but
  487.       their parameters do not change (see #2604)
  488.     This call is ignored in text modes and in native EGA and VGA graphics
  489.       modes
  490.     The image is drawn with its lower left corner at the current graphics
  491.       cursor position
  492. SeeAlso: AX=0011h,AX=001Fh,AX=0034h,AX=0086h,AX=00A9h,AX=00C5h
  493. --------V-620010-----------------------------
  494. INT 62 u - FGDRIVER v4.02 - "FG_CLIPMASK" - DISPLAY CLIPPED IMAGE (MASKING MAP)
  495.     AX = 0010h
  496.     ES:BX -> array containing image stored as a masking map (see #2605)
  497.     CX = number of pixel runs in masking map
  498.     DX = width of masking map in pixels
  499. Notes:    the FGDRIVER functions are rearranged with each major release, but
  500.       their parameters do not change (see #2604)
  501.     This call is ignored in text modes and in native EGA and VGA graphics
  502.       modes
  503.     The image is drawn with its lower left corner at the current graphics
  504.       cursor position
  505. SeeAlso: AX=0011h,AX=001Fh,AX=0034h,AX=00A1h,AX=00A9h,AX=00C5h
  506. --------V-620011-----------------------------
  507. INT 62 u - FGDRIVER v4.02 - "FG_CLPIMAGE" - DISPLAY CLIPPED IMAGE (BITMAP)
  508.     AX = 0011h
  509.     ES:BX -> mode-specific bitmap
  510.     CX = width of bit map in bytes
  511.     DX = height of bit map in pixel rows
  512. Notes:    the FGDRIVER functions are rearranged with each major release, but
  513.       their parameters do not change (see #2604)
  514.     This call is ignored in text modes
  515.     The image is drawn with its lower left corner at the current graphics
  516.       cursor position
  517.     The current clipping region is used, extended to a byte boundary
  518. SeeAlso: AX=0010h,AX=0024h,AX=0036h,AX=0044h,AX=00A0h,AX=00A9h,AX=00B9h
  519. --------V-620012-----------------------------
  520. INT 62 u - FGDRIVER v4.02 - "FG_CLPRECT" - DRAW FILLED RECTANGLE IN SCREEN SPCE
  521.     AX = 0012h
  522.     BX = screen space column of left edge
  523.     CX = screen space column of right edge
  524.     DX = screen space row of top edge
  525.     SI = screen space row of bottom edge
  526. Notes:    the FGDRIVER functions are rearranged with each major release, but
  527.       their parameters do not change (see #2604)
  528.     This call is ignored in text modes
  529. SeeAlso: AX=0006h,AX=0010h,AX=0011h,AX=0023h,AX=009Bh,AX=00A9h
  530. --------V-620013-----------------------------
  531. INT 62 u - FGDRIVER v4.02 - "FG_COLORS" - GET SIMULTANEOUSLY-AVAILABLE COLORS
  532.     AX = 0013h
  533. Return: AX = number of colors available at one time
  534. Note:    the FGDRIVER functions are rearranged with each major release, but
  535.       their parameters do not change (see #2604)
  536. --------V-620014-----------------------------
  537. INT 62 u - FGDRIVER v4.02 - "FG_COPYPAGE" - TRANSFER VIDEO PAGE CONTENTS
  538.     AX = 0014h
  539.     BX = source page number (0000h-003Fh)
  540.     CX = destination page number (0000h-003Fh)
  541. Notes:    the FGDRIVER functions are rearranged with each major release, but
  542.       their parameters do not change (see #2604)
  543.     If both source and destination pages are logical pages, they must both
  544.       be located in the same type (conventional, EMS, XMS) of memory
  545. SeeAlso: AX=009Eh,AX=00A2h,AX=00C6h,AX=00CAh
  546. --------V-620015-----------------------------
  547. INT 62 u - FGDRIVER v4.02 - "FG_CURSOR" - SPECIFY WHETHER TEXT CURSR IS VISIBLE
  548.     AX = 0015h
  549.     BX = new state (0000h invisible, 0001h visible)
  550. Notes:    the FGDRIVER functions are rearranged with each major release, but
  551.       their parameters do not change (see #2604)
  552.     This call is ignored in text modes
  553. SeeAlso: AX=000Ch,AX=0054h,AX=0058h,AX=006Bh,AX=0075h,AX=0079h,AX=007Eh
  554. SeeAlso: AX=00E0h
  555. --------V-620016-----------------------------
  556. INT 62 u - FGDRIVER v4.02 - "FG_DASH" - DRAW DASHED LINE TO ABSOLUTE POSITION
  557.     AX = 0016h
  558.     BX = endpoint column
  559.     CX = endpoint row
  560.     DX = dash pattern (set bits cause drawn pixels)
  561. Notes:    the FGDRIVER functions are rearranged with each major release, but
  562.       their parameters do not change (see #2604)
  563.     This call is ignored in text modes
  564.     The starting point is the current graphics cursor position; the cursor
  565.       position is updated
  566. SeeAlso: AX=0017h,AX=001Dh,AX=008Fh
  567. --------V-620017-----------------------------
  568. INT 62 u - FGDRIVER v4.02 - "FG_DASHREL" - DRAW DASHED LINE TO RELATVE POSITION
  569.     AX = 0017h
  570.     BX = endpoint column offset
  571.     CX = endpoint row offset
  572.     DX = dash pattern (set bits cause drawn pixels)
  573. Notes:    the FGDRIVER functions are rearranged with each major release, but
  574.       their parameters do not change (see #2604)
  575.     This call is ignored in text modes
  576.     The starting point is the current graphics cursor position; the cursor
  577.       position is updated
  578. SeeAlso: AX=0016h,AX=001Eh,AX=008Fh
  579. --------V-620018-----------------------------
  580. INT 62 u - FGDRIVER v4.02 - "FG_DEFCOLOR" - ASSIGN COLOR VALUE TO COLOR INDEX
  581.     AX = 0018h
  582.     BX = color index (0000h-00FFh)
  583.     CX = new color value (0 to maximum color value for current video mode)
  584. Notes:    the FGDRIVER functions are rearranged with each major release, but
  585.       their parameters do not change (see #2604)
  586.     This call is ignored in text modes and 256-color graphics modes
  587. SeeAlso: AX=0040h,AX=0045h,AX=00AAh
  588. --------V-620019-----------------------------
  589. INT 62 u - FGDRIVER v4.02 - "FG_DEFPAGES" - DEF SRC/DEST PAGES FOR BLOCK XFERS
  590.     AX = 0019h
  591.     BX = source page
  592.     CX = destination page
  593. Desc:    specify the source and destination SVGA banks for block transfers on
  594.       extended video pages
  595. Notes:    the FGDRIVER functions are rearranged with each major release, but
  596.       their parameters do not change (see #2604)
  597.     This function is ignored if the video controller does not support
  598.       extended pages or the current video mode does not allow them
  599. SeeAlso: AX=0014h,AX=00CAh
  600. --------V-62001A-----------------------------
  601. INT 62 u - FGDRIVER v4.02 - "FG_DISPFILE" - DISPLAY STORED IMAGE
  602.     AX = 001Ah
  603.     ES:BX -> ASCIZ filename
  604.     CX = image width in pixels (> 0)
  605.     DX = image format
  606.         0000h Fastgraph standard pixel run format
  607.         0001h packed pixel run format
  608. Notes:    the FGDRIVER functions are rearranged with each major release, but
  609.       their parameters do not change (see #2604)
  610.     This call is ignored in text modes
  611.     The image is displayed with its lower left corner at the current
  612.       graphics cursor position
  613. SeeAlso: AX=001Bh,AX=001Ch,AX=00B9h,AX=00BAh,AX=00BBh
  614. --------V-62001B-----------------------------
  615. INT 62 u - FGDRIVER v4.02 - "FG_DISPLAY" - DISPLAY IMAGE (STD PIXEL RUN FORMAT)
  616.     AX = 001Bh
  617.     ES:BX -> pixel run map (pairs of bytes: color index, count)
  618.     CX = number of pixel runs to display
  619.     DX = width of image in pixels (> 0)
  620. Notes:    the FGDRIVER functions are rearranged with each major release, but
  621.       their parameters do not change (see #2604)
  622.     This call is ignored in text modes
  623.     The image is displayed with its lower left corner at the current
  624.       graphics cursor position
  625. SeeAlso: AX=001Ah,AX=001Ch,AX=00B9h,AX=00BAh,AX=00BBh
  626. --------V-62001C-----------------------------
  627. INT 62 u - FGDRIVER v4.02 - "FG_DISPLAYP" - DISPLAY IMAGE (PACKED PIXEL RUNS)
  628.     AX = 001Ch
  629.     ES:BX -> pixel run map (trios of bytes: colors, count1, count2; colors
  630.           contains the color for the first run in its high nybble and
  631.           the color for the second run in its low nybble)
  632.     CX = number of pixel runs to display
  633.     DX = width of image in pixels (> 0)
  634. Notes:    the FGDRIVER functions are rearranged with each major release, but
  635.       their parameters do not change (see #2604)
  636.     This call is ignored in text modes
  637.     The image is displayed with its lower left corner at the current
  638.       graphics cursor position
  639. SeeAlso: AX=001Ah,AX=001Bh,AX=00B9h,AX=00BAh,AX=00BBh
  640. --------V-62001D-----------------------------
  641. INT 62 u - FGDRIVER v4.02 - "FG_DRAW" - DRAW SOLID LINE TO ABSOLUTE POSITION
  642.     AX = 001Dh
  643.     BX = endpoint column
  644.     CX = endpoint row
  645. Notes:    the FGDRIVER functions are rearranged with each major release, but
  646.       their parameters do not change (see #2604)
  647.     This call is ignored in text modes
  648.     The starting point is the current graphics cursor position; the cursor
  649.       position is updated
  650. SeeAlso: AX=0016h,AX=0020h,AX=0021h,AX=0026h,AX=008Fh,AX=0090h
  651. --------V-62001E-----------------------------
  652. INT 62 u - FGDRIVER v4.02 - "FG_DRAWMAP" - DISPLAY MODE-INDEPENDENT BIT MAP
  653.     AX = 001Eh
  654.     ES:BX -> bitmap (each set bit is pixel drawn in current color)
  655.     CX = width of bitmap in bytes
  656.     DX = height of bitmap in pixel rows
  657. Note:    the FGDRIVER functions are rearranged with each major release, but
  658.       their parameters do not change (see #2604)
  659. SeeAlso: AX=0011h,AX=0024h,AX=0036h,AX=0044h,AX=0099h,AX=00A0h
  660. --------V-62001F-----------------------------
  661. INT 62 u - FGDRIVER v4.02 - "FG_DRAWMASK" - DISPLAY IMAGE (MASKING MAP)
  662.     AX = 001Fh
  663.     ES:BX -> array containing image stored as a masking map (see #2605)
  664.     CX = number of pixel runs in masking map
  665.     DX = width of masking map in pixels
  666. Notes:    the FGDRIVER functions are rearranged with each major release, but
  667.       their parameters do not change (see #2604)
  668.     This call is ignored in text modes and in native EGA and VGA graphics
  669.       modes
  670.     The image is drawn with its lower left corner at the current graphics
  671.       cursor position
  672. SeeAlso: AX=0010h,AX=001Fh,AX=00A1h,AX=00A9h
  673.  
  674. Format of FGDRIVER masking map:
  675. Offset    Size    Description    (Table 2605)
  676.  00h    BYTE    length of first "protect" run (pixels remain unchanged)
  677.  01h    BYTE    length of first "zero" run (pixels set to background color)
  678.  02h    BYTE    length of second "protect" run
  679.  03h    BYTE    length of second "zero" run
  680.     ...
  681. --------V-620020-----------------------------
  682. INT 62 u - FGDRIVER v4.02 - "FG_DRAWREL" - DRAW SOLID LINE TO RELATIVE POSITION
  683.     AX = 0020h
  684.     BX = endpoint column offset
  685.     CX = endpoint row offset
  686. Notes:    the FGDRIVER functions are rearranged with each major release, but
  687.       their parameters do not change (see #2604 at AX=0000h)
  688.     This call is ignored in text modes
  689.     The starting point is the current graphics cursor position; the cursor
  690.       position is updated
  691. SeeAlso: AX=0006h,AX=000Dh,AX=001Dh,AX=0021h,AX=0026h,AX=008Fh
  692. --------V-620021-----------------------------
  693. INT 62 u - FGDRIVER v4.02 - "FG_DRAWRELX" - XOR SOLID LINE TO RELATIVE POSITION
  694.     AX = 0021h
  695.     BX = endpoint column offset
  696.     CX = endpoint row offset
  697. Desc:    draw a solid line, XORing each pixel onto the screen
  698. Notes:    the FGDRIVER functions are rearranged with each major release, but
  699.       their parameters do not change (see #2604 at AX=0000h)
  700.     This call is ignored in text modes
  701.     The starting point is the current graphics cursor position; the cursor
  702.       position is updated
  703. SeeAlso: AX=0006h,AX=000Dh,AX=001Dh,AX=0020h,AX=0026h,AX=0090h
  704. --------V-620022-----------------------------
  705. INT 62 u - FGDRIVER v4.02 - "FG_DRAWX" - XOR SOLID LINE TO ABSOLUTE POSITION
  706.     AX = 0022h
  707.     BX = endpoint column
  708.     CX = endpoint row
  709. Desc:    draw a solid line, XORing each pixel onto the screen
  710. Notes:    the FGDRIVER functions are rearranged with each major release, but
  711.       their parameters do not change (see #2604 at AX=0000h)
  712.     This call is ignored in text modes
  713.     The starting point is the current graphics cursor position; the cursor
  714.       position is updated
  715. SeeAlso: AX=001Dh,AX=0021h,AX=008Fh
  716. --------V-620023-----------------------------
  717. INT 62 u - FGDRIVER v4.02 - "FG_DRECT" - DRAW DITHERED RECTANGLE IN SCRN SPACE
  718.     AX = 0023h
  719.     BX = screen space column of left edge
  720.     CX = screen space column of right edge
  721.     DX = screen space row of top edge
  722.     SI = screen space row of bottom edge
  723.     ES:DI -> dithering matrix (video-mode dependent)
  724. Notes:    the FGDRIVER functions are rearranged with each major release, but
  725.       their parameters do not change (see #2604 at AX=0000h)
  726.     This call is ignored in text modes
  727. SeeAlso: AX=0006h,AX=0008h,AX=0013h,AX=003Ch,AX=0089h,AX=009Bh
  728. --------V-620024-----------------------------
  729. INT 62 u - FGDRIVER v4.02 - "FG_DRWIMAGE" - DISPLAY BITMAPPED IMAGE
  730.     AX = 0024h
  731.     ES:BX -> video mode-specific bitmap
  732.     CX = width of bitmap in bytes
  733.     DX = height of bitmap in pixel rows
  734. Notes:    the FGDRIVER functions are rearranged with each major release, but
  735.       their parameters do not change (see #2604 at AX=0000h)
  736.     The image will be drawn with its lower left corner at the current
  737.       cursor position (either text or graphics)
  738. SeeAlso: AX=0011h,AX=0036h,AX=0044h,AX=0099h,AX=00A0h
  739. --------V-620025-----------------------------
  740. INT 62 u - FGDRIVER v4.02 - "FG_EGACHECK" - GET INFO ABOUT ACTIVE EGA DISPLAY
  741.     AX = 0025h
  742. Return: AX = number of 64K banks of video memory, or 0000h if no EGA or EGA
  743.           without an Enhanced Color Display
  744. Note:    the FGDRIVER functions are rearranged with each major release, but
  745.       their parameters do not change (see #2604 at AX=0000h)
  746. SeeAlso: AX=00C2h
  747. --------V-620026-----------------------------
  748. INT 62 u - FGDRIVER v4.02 - "FG_ELLIPSE" - DRAW UNFILLED ELLIPSE IN SCRN SPACE
  749.     AX = 0026h
  750.     BX = horizontal semi-axis length in screen space units
  751.     CX = vertical semi-axis length in screen space units
  752. Notes:    the FGDRIVER functions are rearranged with each major release, but
  753.       their parameters do not change (see #2604 at AX=0000h)
  754.     This call is ignored in text modes
  755.     The ellipse is centered at the current graphics cursor position
  756. SeeAlso: AX=0006h,AX=000Dh,AX=0027h,AX=008Fh,AX=0093h
  757. --------V-620027-----------------------------
  758. INT 62 u - FGDRIVER v4.02 - "FG_ELLIPSEF" - DRAW FILLED ELLIPSE IN SCREEN SPACE
  759.     AX = 0027h
  760.     BX = horizontal semi-axis length in screen space units
  761.     CX = vertical semi-axis length in screen space units
  762. Notes:    the FGDRIVER functions are rearranged with each major release, but
  763.       their parameters do not change (see #2604 at AX=0000h)
  764.     This call is ignored in text modes
  765.     The ellipse is centered at the current graphics cursor position
  766. SeeAlso: AX=0006h,AX=000Eh,AX=0026h,AX=008Fh,AX=0092h
  767. --------V-620028-----------------------------
  768. INT 62 u - FGDRIVER v4.02 - "FG_ERASE" - CLEAR THE ACTIVE VIDEO PAGE
  769.     AX = 0028h
  770. Notes:    the FGDRIVER functions are rearranged with each major release, but
  771.       their parameters do not change (see #2604 at AX=0000h)
  772.     This function sets each pixel to 0 in graphics modes, each character
  773.       cell to a blank with a gray foreground attribute in text modes
  774. SeeAlso: AX=0029h,AX=002Bh,AX=0035h
  775. --------V-620029-----------------------------
  776. INT 62 u - FGDRIVER v4.02 - "FG_FADEIN" - FADE IN HIDDEN PAGE
  777.     AX = 0029h
  778.     BX = delay (0000h = fastest possible fade-in)
  779. Notes:    the FGDRIVER functions are rearranged with each major release, but
  780.       their parameters do not change (see #2604 at AX=0000h)
  781.     The current hidden page is copied to the current visible page in small
  782.       random sections to produce a fade-in effect
  783.     This call is ignored in text modes
  784. SeeAlso: AX=0028h,AX=002Ah,AX=002Bh
  785. --------V-62002A-----------------------------
  786. INT 62 u - FGDRIVER v4.02 - "FG_FADEOUT" - FADE OUT TO CURRENT COLOR
  787.     AX = 002Ah
  788.     BX = delay (0000h = fastest possible fade-out)
  789. Notes:    the FGDRIVER functions are rearranged with each major release, but
  790.       their parameters do not change (see #2604 at AX=0000h)
  791.     The current visible page is filled with pixels of the current color in
  792.       small random sections to give a fade-out effect
  793.     This call is ignored in text modes
  794. SeeAlso: AX=0028h,AX=0029h,AX=002Bh
  795. --------V-62002B-----------------------------
  796. INT 62 u - FGDRIVER v4.02 - "FG_FILLPAGE" - FILL THE ACTIVE VIDEO PAGE
  797.     AX = 002Bh
  798. Desc:    fill the active video page with pixels of the current color (graphics
  799.       modes) or the block character DBh with the current character
  800.       attributes (text modes)
  801. Note:    the FGDRIVER functions are rearranged with each major release, but
  802.       their parameters do not change (see #2604 at AX=0000h)
  803. SeeAlso: AX=0028h,AX=0029h,AX=002Ah
  804. --------V-62002C-----------------------------
  805. INT 62 u - FGDRIVER v4.02 - "FG_FINDPAGE" - FIND AVAILABLE VIRTUAL/LOGICAL PAGE
  806.     AX = 002Ch
  807. Return: AX = first available page number (virtual or logical page)
  808. Note:    the FGDRIVER functions are rearranged with each major release, but
  809.       their parameters do not change (see #2604 at AX=0000h)
  810. SeeAlso: AX=0028h
  811. --------V-62002D-----------------------------
  812. INT 62 u - FGDRIVER v4.02 - "FG_FLICDONE" - CLOSE FLIC FILE
  813.     AX = 002Dh
  814.     ES:BX -> context descriptor (see AX=0030h)
  815. Return: nothing
  816. Note:    the FGDRIVER functions are rearranged with each major release, but
  817.       their parameters do not change (see #2604 at AX=0000h)
  818. SeeAlso: AX=002Eh,AX=0030h
  819. --------V-62002E-----------------------------
  820. INT 62 u - FGDRIVER v4.02 - "FG_FLICHEAD" - READ FLI/FLC FILE HEADER
  821.     AX = 002Eh
  822.     ES:BX -> FLICHEAD variable pointer record (see #2607)
  823. Return: AX = status (see #2606)
  824. Note:    the FGDRIVER functions are rearranged with each major release, but
  825.       their parameters do not change (see #2604 at AX=0000h)
  826. SeeAlso: AX=002Dh,AX=002Fh,AX=0030h,AX=0032h
  827.  
  828. (Table 2606)
  829. Values for FGDRIVER FLIC processing status:
  830.  0000h    successful
  831.  FFFEh    not an FLI or FLC file
  832.  FFFFh    file not found
  833.  
  834. Format of FGDRIVER FLICHEAD variable pointer record:
  835. Offset    Size    Description    (Table 2607)
  836.  00h    WORD    segment of ASCIZ FLI/FLC file name
  837.  02h    WORD    offset of ASCIZ FLI/FLC file name
  838.  04h    WORD    segment of buffer for 128-byte file header
  839.  06h    WORD    offset of buffer for 128-byte file header
  840. --------V-62002F-----------------------------
  841. INT 62 u - FGDRIVER v4.02 - "FG_FLICMODE" - GET OPTIMAL VIDEO MODE FOR FLI/FLC
  842.     AX = 002Fh
  843.     ES:BX -> 128-byte buffer containing FLI/FLC file header (see AX=002Eh)
  844. Return: AX = optimal 256-color graphics mode number
  845.         FFFFh if invalid file header
  846. Note:    the FGDRIVER functions are rearranged with each major release, but
  847.       their parameters do not change (see #2604 at AX=0000h)
  848. SeeAlso: AX=002Eh,AX=0030h
  849. --------V-620030-----------------------------
  850. INT 62 u - FGDRIVER v4.02 - "FG_FLICOPEN" - OPEN FLI/FLC FILE
  851.     AX = 0030h
  852.     ES:BX -> FLICOPEN variable pointer record (see #2608)
  853. Return: AX = status (see #2606)
  854. Note:    the FGDRIVER functions are rearranged with each major release, but
  855.       their parameters do not change (see #2604 at AX=0000h)
  856. SeeAlso: AX=002Dh,AX=002Eh,AX=002Fh,AX=0030h,AX=0031h,AX=0032h
  857.  
  858. Format of FGDRIVER FLICOPEN variable pointer record:
  859. Offset    Size    Description    (Table 2608)
  860.  00h    WORD    segment of ASCIZ FLI/FLC file name
  861.  02h    WORD    offset of ASCIZ FLI/FLC file name
  862.  04h    WORD    segment of buffer for 16-byte file context descriptor
  863.  06h    WORD    offset of buffer for 16-byte file context descriptor
  864. --------V-620031-----------------------------
  865. INT 62 u - FGDRIVER v4.02 - "FG_FLICPLAY" - DISPLAY NEXT FRAME(S) IN FLI/FLC
  866.     AX = 0031h
  867.     ES:BX -> context descriptor (see AX=0030h)
  868.     CX = number of frames to display starting at current frame
  869.     DX = control flags (see #2609)
  870. Return: AX = number of frames displayed
  871. Note:    the FGDRIVER functions are rearranged with each major release, but
  872.       their parameters do not change (see #2604 at AX=0000h)
  873. SeeAlso: AX=0030h,AX=0033h,AX=00B8h
  874.  
  875. Bitfields for FGDRIVER FLI/FLC control flags:
  876. Bit(s)    Description    (Table 2609)
  877.  0    skip inter-frame delay specified in FLI/FLC header
  878.  1    display relative to current graphics position
  879.  2    dipslay image from the FG_IMAGEBUF buffer instead of file
  880. --------V-620032-----------------------------
  881. INT 62 u - FGDRIVER v4.02 - "FG_FLICSIZE" - GET IMAGE SIZE
  882.     AX = 0032h
  883.     ES:BX -> FLICSIZE variable pointer record (see #2610)
  884. Return: image height/width buffers updated; height is set to FFFFh on error
  885. Note:    the FGDRIVER functions are rearranged with each major release, but
  886.       their parameters do not change (see #2604 at AX=0000h)
  887. SeeAlso: AX=002Eh,AX=0030h
  888.  
  889. Format of FGDRIVER FLICSIZE variable pointer record:
  890. Offset    Size    Description    (Table 2610)
  891.  00h    WORD    segment of buffer for 128-byte FLI/FLC file header
  892.  02h    WORD    offset of buffer for 128-byte FLI/FLC file header
  893.  04h    WORD    segment of WORD buffer for image width in pixels
  894.  06h    WORD    offset of WORD buffer for image width in pixels
  895.  08h    WORD    segment of WORD buffer for image height in pixels
  896.  0Ah    WORD    offset of WORD buffer for image height in pixels
  897. --------V-620033-----------------------------
  898. INT 62 u - FGDRIVER v4.02 - "FG_FLICSKIP" - SKIP FRAME(S) IN FLI/FLC FILE
  899.     AX = 0033h
  900.     ES:BX -> context descriptor (see AX=0030h)
  901.     CX = number of frames to skip
  902.         reset to first frame if skip count is negative
  903. Return: AX = number of frames skipped (may be less than requested if EOF)
  904.         0000h if resetting to first frame
  905. Note:    the FGDRIVER functions are rearranged with each major release, but
  906.       their parameters do not change (see #2604 at AX=0000h)
  907. SeeAlso: AX=0030h,AX=0031h
  908. --------V-620034-----------------------------
  909. INT 62 u - FGDRIVER v4.02 - "FG_FLIPMASK" - DISPLAY INV CLIPPED IMAGE (MASKMAP)
  910.     AX = 0034h
  911.     ES:BX -> array containing image stored as a masking map (see #2605)
  912.     CX = number of pixel runs in masking map
  913.     DX = width of masking map in pixels
  914. Notes:    the FGDRIVER functions are rearranged with each major release, but
  915.       their parameters do not change (see #2604 at AX=0000h)
  916.     This call is ignored in text modes and in native EGA and VGA graphics
  917.       modes
  918.     The image is drawn with its lower left corner at the current graphics
  919.       cursor position
  920. SeeAlso: AX=000Fh,AX=001Fh,AX=0036h,AX=00A1h,AX=00A5h,AX=00C5h
  921. --------V-620035-----------------------------
  922. INT 62 u - FGDRIVER v4.02 - "FG_FLOOD" - FLOOD FILL ARBITRARY CLOSED REGION
  923.     AX = 0035h
  924.     BX = starting column
  925.     CX = starting row
  926. Desc:    fill the bounded region around the specified point (respecting clipping
  927.       region) with the currrent color
  928. Notes:    the FGDRIVER functions are rearranged with each major release, but
  929.       their parameters do not change (see #2604 at AX=0000h)
  930.     This function is ignored in text modes
  931. SeeAlso: AX=0028h,AX=0085h
  932. --------V-620036-----------------------------
  933. INT 62 u - FGDRIVER v4.02 - "FG_FLPIMAGE" - DISPLAY INV CLIPPED IMAGE (BITMAP)
  934.     AX = 0036h
  935.     ES:BX -> mode-specific bitmap
  936.     CX = width of bit map in bytes
  937.     DX = height of bit map in pixel rows
  938. Notes:    the FGDRIVER functions are rearranged with each major release, but
  939.       their parameters do not change (see #2604 at AX=0000h)
  940.     This call is ignored in text modes
  941.     The image is drawn with its lower left corner at the current graphics
  942.       cursor position
  943.     The current clipping region is used, extended to a byte boundary
  944. SeeAlso: AX=0011h,AX=0024h,AX=0034h,AX=0044h,AX=00A0h,AX=00A9h,AX=00B9h
  945. --------V-620037-----------------------------
  946. INT 62 u - FGDRIVER v4.02 - "FG_FONTSIZE" - SPECIFY FONT SIZE FOR TEXT OUTPUT
  947.     AX = 0037h
  948.     BX = desired character height in scan lines (8, 14, 16)
  949. Notes:    the FGDRIVER functions are rearranged with each major release, but
  950.       their parameters do not change (see #2604 at AX=0000h)
  951.     This call is ignored if the current mode is not a VGA or SVGA graphics
  952.       mode, or the specified character height is not 8, 14, or 16
  953. SeeAlso: AX=0096h
  954. --------V-620038-----------------------------
  955. INT 62 u - FGDRIVER v4.02 - "FG_FREEPAGE" - FREE VIRTUAL OR LOGICAL VIDEO PAGE
  956.     AX = 0038h
  957.     BX = page number (0000h-003Fh)
  958. Return: AX = status (0000h,0001h,0007h,0009h) (see #2603)
  959. Note:    the FGDRIVER functions are rearranged with each major release, but
  960.       their parameters do not change (see #2604 at AX=0000h)
  961. SeeAlso: AX=0000h,AX=0001h,AX=0002h,AX=0003h
  962. --------V-620039-----------------------------
  963. INT 62 u - FGDRIVER v4.02 - "FG_GETADDR" - GET SEGMENT OF ACTIVE VIDEO PAGE
  964.     AX = 0039h
  965. Return: AX = segment of active video page
  966. Note:    the FGDRIVER functions are rearranged with each major release, but
  967.       their parameters do not change (see #2604 at AX=0000h)
  968. SeeAlso: AX=0042h,AX=00ACh
  969. --------V-62003A-----------------------------
  970. INT 62 u - FGDRIVER v4.02 - "FG_GETATTR" - GET CHARACTER ATTRIB FOR POSITION
  971.     AX = 003Ah
  972.     BX = row
  973.     CX = column
  974. Return: AX = character attribute at specified location on active video page
  975. Notes:    the FGDRIVER functions are rearranged with each major release, but
  976.       their parameters do not change (see #2604 at AX=0000h)
  977.     This call is ignored in graphics modes
  978. SeeAlso: AX=000Bh,AX=003Dh,AX=0040h,AX=00A6h
  979. --------V-62003B-----------------------------
  980. INT 62 u - FGDRIVER v4.02 - "FG_GETBANKS" - GET SVGA READ AND WRITE BANKS
  981.     AX = 003Bh
  982.     ES:BX -> GETBANKS variable pointer record (see #2611)
  983. Return: nothing
  984. Note:    the FGDRIVER functions are rearranged with each major release, but
  985.       their parameters do not change (see #2604 at AX=0000h)
  986. SeeAlso: AX=00A7h
  987.  
  988. Format of FGDRIVER GETBANKS variable pointer record:
  989. Offset    Size    Description    (Table 2611)
  990.  00h    WORD    segment of WORD buffer for read bank number
  991.  02h    WORD    offset of WORD buffer for read bank number
  992.  04h    WORD    segment of WORD buffer for write bank number
  993.  06h    WORD    offset of WORD buffer for write bank number
  994. --------V-62003C-----------------------------
  995. INT 62 u - FGDRIVER v4.02 - "FG_GETBLOCK" - GRAB RECTANGLE OF DISPLAY
  996.     AX = 003Ch
  997.     ES:BX -> buffer for screen contents
  998.     CX = leftmost column
  999.     DX = rightmost column
  1000.     SI = top row
  1001.     DI = bottom row
  1002. Notes:    the FGDRIVER functions are rearranged with each major release, but
  1003.       their parameters do not change (see #2604 at AX=0000h)
  1004.     In text modes, coordinates are character positions; in graphics modes,
  1005.       they are defined in screen space, and the left and right edges are
  1006.       adjusted to a byte boundary if necessary
  1007.     Use "FG_IMAGESIZ" (see AX=005Ch) to determine the required buffer size
  1008. SeeAlso: AX=0044h,AX=005Ch,AX=0098h
  1009. --------V-62003D-----------------------------
  1010. INT 62 u - FGDRIVER v4.02 - "FG_GETCHAR" - GET CHARACTER FOR SCREEN POSITION
  1011.     AX = 003Dh
  1012.     BX = row
  1013.     CX = column
  1014. Return: AX = character at specified location on active video page
  1015. Notes:    the FGDRIVER functions are rearranged with each major release, but
  1016.       their parameters do not change (see #2604 at AX=0000h)
  1017.     This call is ignored in graphics modes
  1018. SeeAlso: AX=000Bh,AX=003Ah,AX=0096h,AX=00A6h,AX=00C8h
  1019. --------V-62003E-----------------------------
  1020. INT 62 u - FGDRIVER v4.02 - "FG_GETCLIP" - GET CLIPPING REGION IN SCREEN SPACE
  1021.     AX = 003Eh
  1022.     ES:BX -> GETCLIP variable pointer record (see #2612)
  1023. Return: variables specifed by GETCLIP structure updated
  1024. Note:    the FGDRIVER functions are rearranged with each major release, but
  1025.       their parameters do not change (see #2604 at AX=0000h)
  1026. SeeAlso: AX=00CAh
  1027.  
  1028. Format of FGDRIVER GETCLIP variable pointer record:
  1029. Offset    Size    Description    (Table 2612)
  1030.  00h    WORD    segment of WORD buffer for minimum X coordinate (left edge)
  1031.  02h    WORD    offset of WORD buffer for minimum X coordinate (left edge)
  1032.  04h    WORD    segment of WORD buffer for maximum X coordinate (right edge)
  1033.  06h    WORD    offset of WORD buffer for maximum X coordinate (right edge)
  1034.  08h    WORD    segment of WORD buffer for minimum Y coordinate (top edge)
  1035.  0Ah    WORD    offset of WORD buffer for minimum Y coordinate (top edge)
  1036.  0Ch    WORD    segment of WORD buffer for maximum Y coordinate (bottom edge)
  1037.  0Eh    WORD    offset of WORD buffer for maximum Y coordinate (bottom edge)
  1038. --------V-62003F-----------------------------
  1039. INT 62 u - FGDRIVER v4.02 - "FG_GETCLOCK" - GET CLOCK TICKS SINCE MIDNIGHT
  1040.     AX = 003Fh
  1041. Return: DX:AX = number of clock ticks since midnight
  1042. Note:    the FGDRIVER functions are rearranged with each major release, but
  1043.       their parameters do not change (see #2604 at AX=0000h)
  1044. SeeAlso: INT 1A/AH=00h
  1045. --------V-620040-----------------------------
  1046. INT 62 u - FGDRIVER v4.02 - "FG_GETCOLOR" - GET CURRENT TEXT ATTRIBUTE
  1047.     AX = 0040h
  1048. Return: AX = current text attribute or color index (graphics modes)
  1049. Note:    the FGDRIVER functions are rearranged with each major release, but
  1050.       their parameters do not change (see #2604 at AX=0000h)
  1051. SeeAlso: AX=000Bh,AX=003Ah,AX=00A6h
  1052. --------V-620041-----------------------------
  1053. INT 62 u - FGDRIVER v4.02 - "FG_GETDACS" - GET VIDEO DAC CONTENTS
  1054.     AX = 0041h
  1055.     CX = number of DAC registers to return (0001h to 0100h)
  1056.     DX = starting DAC register number (0000h to 00FFh)
  1057.     ES:BX -> buffer for DAC red/green/blue triples
  1058. Notes:    the FGDRIVER functions are rearranged with each major release, but
  1059.       their parameters do not change (see #2604 at AX=0000h)
  1060.     The register number wraps back to zero after FFh
  1061. SeeAlso: AX=004Eh,AX=0086h,AX=00ABh
  1062. --------V-620042-----------------------------
  1063. INT 62 u - FGDRIVER v4.02 - "FG_GETENTRY" - GET PAGE TYPE AND ADDRESS
  1064.     AX = 0042h
  1065.     ES:BX -> variable pointer record (see #2613)
  1066.     CX = page number (00h-3Fh)
  1067. Notes:    the FGDRIVER functions are rearranged with each major release, but
  1068.       their parameters do not change (see #2604 at AX=0000h)
  1069.     Page addresses are segments for pages stored in conventional memory
  1070.       (including physical and virtual pages), and EMS or XMS handles for
  1071.       pages stored in EMS or XMS
  1072. SeeAlso: AX=0000h,AX=00ACh
  1073.  
  1074. Format of FGDRIVER GETENTRY variable pointer record:
  1075. Offset    Size    Description    (Table 2613)
  1076.  00h    WORD    segment of WORD buffer for page address
  1077.  02h    WORD    offset of WORD buffer for page address
  1078.  04h    WORD    segment of WORD buffer for page type (se #2614)
  1079.  06h    WORD    offset of WORD buffer for page type
  1080.  
  1081. (Table 2614)
  1082. Values for FGDRIVER page type:
  1083.  0000h    unallocated
  1084.  0001h    physical
  1085.  0002h    virtual
  1086.  0003h    logical page, stored in expanded memory (EMS)
  1087.  0004h    logical page, stored in extended memory (XMS)
  1088.  0005h    logical page, stored in conventional memory
  1089. --------V-620043-----------------------------
  1090. INT 62 u - FGDRIVER v4.02 - "FG_GETHPAGE" - GET CURRENT HIDDEN VIDEO PAGE NUM
  1091.     AX = 0043h
  1092. Return: AX = current hidden video page number (0000h-003Fh)
  1093. Note:    the FGDRIVER functions are rearranged with each major release, but
  1094.       their parameters do not change (see #2604 at AX=0000h)
  1095. SeeAlso: AX=004Ch,AX=0050h,AX=00AEh
  1096. --------V-620044-----------------------------
  1097. INT 62 u - FGDRIVER v4.02 - "FG_GETIMAGE" - STORE IMAGE AS BITMAP
  1098.     AX = 0044h
  1099.     ES:BX -> buffer for video mode-specific bitmap
  1100.     CX = width of bitmap in bytes
  1101.     DX = height of bitmap in pixel rows
  1102. Note:    the FGDRIVER functions are rearranged with each major release, but
  1103.       their parameters do not change (see #2604 at AX=0000h)
  1104. SeeAlso: AX=0011h,AX=0024h,AX=0036h,AX=0099h,AX=00A0h
  1105. --------V-620045-----------------------------
  1106. INT 62 u - FGDRIVER v4.02 - "FG_GETINDEX" - GET COLOR VALUE FOR COLOR INDEX
  1107.     AX = 0045h
  1108.     BX = color index (0000h to 00FFh)
  1109. Return: AX = color value for specified color index
  1110. Notes:    the FGDRIVER functions are rearranged with each major release, but
  1111.       their parameters do not change (see #2604 at AX=0000h)
  1112.     This call returns the value passed to it in text and 256-color
  1113.       graphics modes
  1114. SeeAlso: AX=0018h,AX=0040h
  1115. --------V-620046-----------------------------
  1116. INT 62 u - FGDRIVER v4.02 - "FG_GETKEY" - GET NEXT KEYSTROKE
  1117.     AX = 0046h
  1118.     ES:BX -> variable pointer record (see #2615)
  1119. Return: (after next keystroke if no typeahead) variables updated
  1120. Note:    the FGDRIVER functions are rearranged with each major release, but
  1121.       their parameters do not change (see #2604 at AX=0000h)
  1122. SeeAlso: AX=000Ah,AX=0063h,AX=0069h,AX=00DEh,INT 16/AH=00h
  1123.  
  1124. Format of FGDRIVER GETKEY variable pointer record:
  1125. Offset    Size    Description    (Table 2615)
  1126.  00h    WORD    segment of BYTE buffer for ASCII keycode
  1127.  02h    WORD    offset of BYTE buffer for ASCII keycode
  1128.  04h    WORD    segment of BYTE buffer for extended keycode
  1129.  06h    WORD    offset of BYTE buffer for extended keycode
  1130. --------V-620047-----------------------------
  1131. INT 62 u - FGDRIVER v4.02 - "FG_GETLINES" - GET TEXT ROWS FOR CURR VIDEO MODE
  1132.     AX = 0047h
  1133. Return: AX = number of text rows on screen in current video mode
  1134. Note:    the FGDRIVER functions are rearranged with each major release, but
  1135.       their parameters do not change (see #2604 at AX=0000h)
  1136. SeeAlso: AX=00AFh,AX=00C2h
  1137. --------V-620048-----------------------------
  1138. INT 62 u - FGDRIVER v4.02 - "FG_GETMAP" - STORE IMAGE AS MODE-INDEPENDNT BITMAP
  1139.     AX = 0048h
  1140.     ES:BX -> buffer for video mode-independent bitmap
  1141.     CX = width of bitmap in bytes
  1142.     DX = height of bitmap in pixel rows
  1143. Return: each bit in bitmap is set if corresponding pixel is of the current
  1144.       color, cleared otherwise
  1145. Notes:    the FGDRIVER functions are rearranged with each major release, but
  1146.       their parameters do not change (see #2604 at AX=0000h)
  1147.     This call is ignored in text modes
  1148. SeeAlso: AX=0011h,AX=001Eh,AX=0024h
  1149. --------V-620049-----------------------------
  1150. INT 62 u - FGDRIVER v4.02 - "FG_GETMAXX" - GET MAXIMUM COLUMN IN SCREEN SPACE
  1151.     AX = 0049h
  1152. Return: AX = maximum X coordinate in screen space
  1153.         (or character space if in text mode)
  1154. Note:    the FGDRIVER functions are rearranged with each major release, but
  1155.       their parameters do not change (see #2604 at AX=0000h)
  1156. SeeAlso: AX=004Ah,AX=00C1h
  1157. --------V-62004A-----------------------------
  1158. INT 62 u - FGDRIVER v4.02 - "FG_GETMAXY" - GET MAXIMUM ROW IN SCREEN SPACE
  1159.     AX = 004Ah
  1160. Return: AX = maximum Y coordinate in screen space
  1161.         (or character space if in text mode)
  1162. Note:    the FGDRIVER functions are rearranged with each major release, but
  1163.       their parameters do not change (see #2604 at AX=0000h)
  1164. SeeAlso: AX=0049h,AX=00C1h
  1165. --------V-62004B-----------------------------
  1166. INT 62 u - FGDRIVER v4.02 - "FG_GETMODE" - GET CURRENT VIDEO MODE NUMBER
  1167.     AX = 004Bh
  1168.     ES:BX -> WORD ???
  1169. Return: AX = current video mode number
  1170. Note:    the FGDRIVER functions are rearranged with each major release, but
  1171.       their parameters do not change (see #2604 at AX=0000h)
  1172. SeeAlso: AX=00B0h
  1173. --------V-62004C-----------------------------
  1174. INT 62 u - FGDRIVER v4.02 - "FG_GETPAGE" - GET ACTIVE VIDEO PAGE NUMBER
  1175.     AX = 004Ch
  1176. Return: AX = active video page (0000h-003Fh)
  1177. Note:    the FGDRIVER functions are rearranged with each major release, but
  1178.       their parameters do not change (see #2604 at AX=0000h)
  1179. SeeAlso: AX=0039h,AX=0042h,AX=0043h,AX=0050h,AX=00B2h
  1180. --------V-62004D-----------------------------
  1181. INT 62 u - FGDRIVER v4.02 - "FG_GETPIXEL" - GET COLOR OF SPECIFIED PIXEL
  1182.     AX = 004Dh
  1183.     BX = column in screen space
  1184.     CX = row in screen space
  1185. Return: AX = color value of pixel (0 to num_colors-1)
  1186.         0000h in text modes
  1187. Note:    the FGDRIVER functions are rearranged with each major release, but
  1188.       their parameters do not change (see #2604 at AX=0000h)
  1189. SeeAlso: AX=003Ah,AX=003Dh,AX=008Fh,AX=0090h
  1190. --------V-62004E-----------------------------
  1191. INT 62 u - FGDRIVER v4.02 - "FG_GETRGB" - GET VIDEO DAC REGISTER CONTENTS
  1192.     AX = 004Eh
  1193.     ES:BX -> variable pointer record (see #2616)
  1194.     CX = DAC register number
  1195. Return: variables updated
  1196. Notes:    the FGDRIVER functions are rearranged with each major release, but
  1197.       their parameters do not change (see #2604 at AX=0000h)
  1198.     This call is ignored in text modes and CGA/EGA video modes (since
  1199.       they do not use DAC registers)
  1200. SeeAlso: AX=00441h,AX=0086h,AX=00ABh
  1201.  
  1202. Format of FGDRIVER GETRGB variable pointer record:
  1203. Offset    Size    Description    (Table 2616)
  1204.  00h    WORD    segment of WORD buffer for red component of DAC register
  1205.  02h    WORD    offset of WORD buffer for red component
  1206.  04h    WORD    segment of WORD buffer for green component of DAC register
  1207.  06h    WORD    offset of WORD buffer for green component
  1208.  08h    WORD    segment of WORD buffer for blue component of DAC register
  1209.  0Ah    WORD    offset of WORD buffer for blue component
  1210. --------V-62004F-----------------------------
  1211. INT 62 u - FGDRIVER v4.02 - "FG_GETVIEW" - GET VIEWPORT EXTREME LIMITS
  1212.     AX = 004Fh
  1213.     ES:BX -> variable pointer record (see #2617)
  1214. Return: indicated variables updated
  1215. Note:    the FGDRIVER functions are rearranged with each major release, but
  1216.       their parameters do not change (see #2604 at AX=0000h)
  1217. SeeAlso: AX=00B5h
  1218.  
  1219. Format of FGDRIVER GETVIEW variable pointer record:
  1220. Offset    Size    Description    (Table 2617)
  1221.  00h    WORD    segment of WORD buffer for viewport left edge (viewport units)
  1222.  02h    WORD    offset of WORD buffer for viewport left edge (viewport units)
  1223.  04h    WORD    segment of WORD buffer for viewport right edge (viewport units)
  1224.  06h    WORD    offset of WORD buffer for viewport right edge (viewport units)
  1225.  08h    WORD    segment of WORD buffer for viewport top edge (viewport units)
  1226.  0Ah    WORD    offset of WORD buffer for viewport top edge (viewport units)
  1227.  0Ch    WORD    segment of WORD buffer for viewport bottom edge (viewp. units)
  1228.  0Eh    WORD    offset of WORD buffer for viewport bottom edge (viewp. units)
  1229.  10h    WORD    segment of WORD buffer for viewport left edge (screen space)
  1230.  12h    WORD    offset of WORD buffer for viewport left edge (screen space)
  1231.  14h    WORD    segment of WORD buffer for viewport right edge (screen space)
  1232.  16h    WORD    offset of WORD buffer for viewport right edge (screen space)
  1233.  18h    WORD    segment of WORD buffer for viewport top edge (screen space)
  1234.  1Ah    WORD    offset of WORD buffer for viewport top edge (screen space)
  1235.  1Ch    WORD    segment of WORD buffer for viewport bottom edge (screen space)
  1236.  1Eh    WORD    offset of WORD buffer for viewport bottom edge (screen space)
  1237. --------V-620050-----------------------------
  1238. INT 62 u - FGDRIVER v4.02 - "FG_GETVPAGE" - GET VISIBLE VIDEO PAGE NUMBER
  1239.     AX = 0050h
  1240. Return: AX = visible video page (0000h-003Fh)
  1241. Note:    the FGDRIVER functions are rearranged with each major release, but
  1242.       their parameters do not change (see #2604 at AX=0000h)
  1243. SeeAlso: AX=0043h,AX=004Ch,AX=00B6h
  1244. --------V-620051-----------------------------
  1245. INT 62 u - FGDRIVER v4.02 - "FG_GETXBOX" - GET WIDTH OF VERTICAL BOX LINES
  1246.     AX = 0051h
  1247. Return: AX = width (in pixels) of left and right edges of rectangles
  1248. Note:    the FGDRIVER functions are rearranged with each major release, but
  1249.       their parameters do not change (see #2604 at AX=0000h)
  1250. SeeAlso: AX=0006h,AX=0007h,AX=0008h,AX=006Bh
  1251. --------V-620052-----------------------------
  1252. INT 62 u - FGDRIVER v4.02 - "FG_GETXJOY" - GET HORIZONTAL POSITION OF JOYSTICK
  1253.     AX = 0052h
  1254.     BX = joystick number (0001h or 0002h)
  1255. Return: AX = horizontal position of joystick
  1256.         FFFFh if joystick uninitialized or not present
  1257. Notes:    the FGDRIVER functions are rearranged with each major release, but
  1258.       their parameters do not change (see #2604 at AX=0000h)
  1259.     The actual coordinates are processor- and joystick-dependent
  1260.     You must call "FG_INITJOY" (AX=005Eh) before using this function
  1261. SeeAlso: AX=0009h,AX=0056h,AX=005Eh,AX=0062h,AX=0077h
  1262. --------V-620053-----------------------------
  1263. INT 62 u - FGDRIVER v4.02 - "FG_GETXJUST" - GET HORIZONTAL JUSTIFICATION
  1264.     AX = 0053h
  1265. Return: AX = string justification
  1266.         0000h strings are centered around current graphics X position
  1267.         0001h strings are right-justified at current graphics X position
  1268.         FFFFh strings are left-justified at current graphics X position
  1269. Note:    the FGDRIVER functions are rearranged with each major release, but
  1270.       their parameters do not change (see #2604 at AX=0000h)
  1271. SeeAlso: AX=006Ch,AX=007Bh
  1272. --------V-620054-----------------------------
  1273. INT 62 u - FGDRIVER v4.02 - "FG_GETXPOS" - GET GRAPHICS CURSOR COLUMN
  1274.     AX = 0054h
  1275. Return: AX = screen space X coordinate of graphics cursor position
  1276. Note:    the FGDRIVER functions are rearranged with each major release, but
  1277.       their parameters do not change (see #2604 at AX=0000h)
  1278. SeeAlso: AX=0058h,AX=007Eh,AX=007Fh
  1279. --------V-620055-----------------------------
  1280. INT 62 u - FGDRIVER v4.02 - "FG_GETYBOX" - GET WIDTH OF HORIZONTAL BOX LINES
  1281.     AX = 0055h
  1282. Return: AX = width (in pixels) of top and bottom edges of rectangles
  1283. Note:    the FGDRIVER functions are rearranged with each major release, but
  1284.       their parameters do not change (see #2604 at AX=0000h)
  1285. SeeAlso: AX=0006h,AX=0007h,AX=0008h,AX=0063h
  1286. --------V-620056-----------------------------
  1287. INT 62 u - FGDRIVER v4.02 - "FG_GETYJOY" - GET VERTICAL POSITION OF JOYSTICK
  1288.     AX = 0056h
  1289.     BX = joystick number (0001h or 0002h)
  1290. Return: AX = vertical position of joystick
  1291.         FFFFh if joystick uninitialized or not present
  1292. Notes:    the FGDRIVER functions are rearranged with each major release, but
  1293.       their parameters do not change (see #2604 at AX=0000h)
  1294.     The actual coordinates are processor- and joystick-dependent
  1295.     You must call "FG_INITJOY" (AX=005Eh) before using this function
  1296. SeeAlso: AX=0009h,AX=0052h,AX=005Eh,AX=0062h,AX=0077h
  1297. --------V-620057-----------------------------
  1298. INT 62 u - FGDRIVER v4.02 - "FG_GETYJUST" - GET VERTICAL JUSTIFICATION
  1299.     AX = 0057h
  1300. Return: AX = string justification
  1301.         0000h strings are centered around current graphics Y position
  1302.         0001h strings have top edge at current graphics Y position
  1303.         FFFFh strings have bottom edge at current graphics Y position
  1304. Note:    the FGDRIVER functions are rearranged with each major release, but
  1305.       their parameters do not change (see #2604 at AX=0000h)
  1306. SeeAlso: AX=0053h,AX=0065h
  1307. --------V-620058-----------------------------
  1308. INT 62 u - FGDRIVER v4.02 - "FG_GETYPOS" - GET GRAPHICS CURSOR ROW
  1309.     AX = 0058h
  1310. Return: AX = screen space Y coordinate of graphics cursor position
  1311. Note:    the FGDRIVER functions are rearranged with each major release, but
  1312.       their parameters do not change (see #2604 at AX=0000h)
  1313. SeeAlso: AX=0054h,AX=007Eh,AX=007Fh
  1314. --------V-620059-----------------------------
  1315. INT 62 u - FGDRIVER v4.02 - "FG_HUSH" - STOP ASYNCHRONOUS SOUND IMMEDIATELY
  1316.     AX = 0059h
  1317. Notes:    the FGDRIVER functions are rearranged with each major release, but
  1318.       their parameters do not change (see #2604 at AX=0000h)
  1319.     This function immediately stops any sounds started with "FG_MUSICB",
  1320.       "FG_SOUNDS", or "FG_VOICES"; it is ignored if no asynchronous sound
  1321.       is playing
  1322. SeeAlso: AX=005Ah,AX=0081h,AX=00BDh,AX=00DCh
  1323. --------V-62005A-----------------------------
  1324. INT 62 u - FGDRIVER v4.02 - "FG_HUSHNEXT" - STOP ASYNCHRONOUS SOUND
  1325.     AX = 005Ah
  1326. Program: FGDRIVER is the external video driver for the shareware
  1327.       Fastgraph/Light by Ted Gruber Software
  1328. Notes:    the FGDRIVER functions are rearranged with each major release, but
  1329.       their parameters do not change (see #2604 at AX=0000h)
  1330.     This function stops any sounds started with "FG_MUSICB", "FG_SOUNDS",
  1331.       or "FG_VOICES" after the current repetition completes; it is ignored
  1332.       unless asynchronous sound is continuous
  1333. SeeAlso: AX=0059h,AX=0081h,AX=00BDh,AX=00DCh
  1334. --------V-62005B-----------------------------
  1335. INT 62 u - FGDRIVER v4.02 - "FG_IMAGEBUF" - SPECIFY TEMPORARY IMAGE BUFFER
  1336.     AX = 005Bh
  1337.     ES:BX -> buffer to be used when creating or displaying GIF/PCX/PPR/SPR
  1338.           images
  1339.     CX = size of buffer in bytes or 0000h to use internal buffer
  1340. Notes:    the FGDRIVER functions are rearranged with each major release, but
  1341.       their parameters do not change (see #2604 at AX=0000h)
  1342.     Fastgraph's internal buffer is 4096 bytes; this function allows the
  1343.       application to define a larger buffer which will typically speed
  1344.       processing
  1345. SeeAlso: AX=006Ch,AX=006Dh,AX=006Eh,AX=00B9h,AX=00BAh,AX=00BBh
  1346. --------V-62005C-----------------------------
  1347. INT 62 u - FGDRIVER v4.02 - "FG_IMAGESIZ" - DETERMINE IMAGE STORAGE REQUIREMENT
  1348.     AX = 005Ch
  1349.     BX = image width in pixels
  1350.     CX = image height in pixels
  1351. Note:    the FGDRIVER functions are rearranged with each major release, but
  1352.       their parameters do not change (see #2604 at AX=0000h)
  1353. Return: DX:AX = size in bytes of mode-specific bitmap for current video mode
  1354. SeeAlso: AX=003Ch,AX=0098h
  1355. --------V-62005D-----------------------------
  1356. INT 62 u - FGDRIVER v4.02 - "FG_INITEMS" - INITIALIZE EXPANDED MEMORY USE
  1357.     AX = 005Dh
  1358. Return: AX = status
  1359.         0000h successful
  1360.         FFFFh expanded memory manager inaccessible or not installed
  1361. Note:    the FGDRIVER functions are rearranged with each major release, but
  1362.       their parameters do not change (see #2604 at AX=0000h)
  1363. SeeAlso: AX=0002h,AX=0060h"v4.02"
  1364. --------V-62005E-----------------------------
  1365. INT 62 u - FGDRIVER v4.02 - "FG_INITJOY" - INITIALIZE JOYSTICK USE
  1366.     AX = 005Eh
  1367.     BX = joystick number (0001h or 0002h)
  1368. Return: AX = status
  1369.         0000h successful
  1370.         FFFFh joystick not connected or no game port
  1371. Notes:    the FGDRIVER functions are rearranged with each major release, but
  1372.       their parameters do not change (see #2604 at AX=0000h)
  1373.     Fastgraph assumes that the requested joystick is centered at the time
  1374.       this function is called
  1375. SeeAlso: AX=0009h,AX=0052h,AX=0056h,AX=0062h,AX=0077h
  1376. --------V-62005F-----------------------------
  1377. INT 62 u - FGDRIVER v4.02 - "FG_INITPM"??? - (NOT IMPLEMENTED)
  1378.     AX = 005Fh
  1379.     ???
  1380. Return: ???
  1381. Note:    the FGDRIVER functions are rearranged with each major release, but
  1382.       their parameters do not change (see #2604 at AX=0000h)
  1383. --------V-620060-----------------------------
  1384. INT 62 u - FGDRIVER v1.10 only - "FG_DISPPCX" - DISPLAY PCX FILE
  1385.     AX = 0060h
  1386.     ES:BX -> ASCIZ filename
  1387.     CX = flags
  1388.         bit 0: use current palette rather than PCX file's palette
  1389.         bits 1-15 reserved (0)
  1390. Return: AX = status
  1391.         0000h success
  1392.         0001h file not found
  1393.         0002h file is not a valid PCX file
  1394. Notes:    the FGDRIVER functions are rearranged with each major release, but
  1395.       their parameters do not change (see #2604 at AX=0000h)
  1396.     This call is ignored in text modes and Hercules low-resolution graphics
  1397.     The image is displayed with its upper left corner at the current
  1398.       graphics cursor position
  1399. SeeAlso: AX=00B9h
  1400. --------V-620060-----------------------------
  1401. INT 62 u - FGDRIVER v4.02 - "FG_INITXMS" - INITIALIZE EXTENDED MEMORY USE
  1402.     AX = 0060h
  1403. Return: AX = status
  1404.         0000h successful
  1405.         FFFFh extended memory manager inaccessible or not installed
  1406. Note:    the FGDRIVER functions are rearranged with each major release, but
  1407.       their parameters do not change (see #2604 at AX=0000h)
  1408. SeeAlso: AX=0003h,AX=005Dh
  1409. --------V-620061-----------------------------
  1410. INT 62 u - FDGRIVER v4.02 - "FG_INSIDE" - CHECK IF POINT INSIDE CONVEX POLYGON
  1411.     AX = 0061h
  1412.     ES:BX -> vertex array
  1413.     CX = number of vertices
  1414.     DX = screen space column of point to test
  1415.     SI = screen space row of point to test
  1416. Return: AX = result
  1417.         0000h point is outside polygon
  1418.         0001h point is inside polygon
  1419.         undefined if not a convex polygon
  1420. Note:    the FGDRIVER functions are rearranged with each major release, but
  1421.       their parameters do not change (see #2604 at AX=0000h)
  1422. SeeAlso: AX=0092h,AX=0093h,AX=0094h
  1423. --------V-620062-----------------------------
  1424. INT 62 u - FGDRIVER v4.02 - "FG_INTJOY" - GET KEYCODES CORRESP TO JOYSTICK POS
  1425.     AX = 0062h
  1426.     CX = joystick number (0001h or 0002h)
  1427.     ES:BX -> variable pointer record (see #2618)
  1428. Notes:    the FGDRIVER functions are rearranged with each major release, but
  1429.       their parameters do not change (see #2604 at AX=0000h)
  1430.     If the indicated joystick has not been initialized with AX=008Eh, both
  1431.       the button code and joystick position will be set to 00h
  1432.     If either button is pressed, a button code of 0Dh is returned;
  1433.       otherwise, a button code of 00h is returned
  1434. SeeAlso: AX=0009h,AX=0052h,AX=0046h,AX=005Eh,AX=0077h
  1435.  
  1436. Format of FGDRIVER INTJOY variable pointer record:
  1437. Offset    Size    Description    (Table 2618)
  1438.  00h    WORD    segment of BYTE buffer for button code
  1439.  02h    WORD    offset of BYTE buffer for button code
  1440.  04h    WORD    segment of BYTE buffer for joystick position
  1441.  06h    WORD    offset of BYTE buffer for joystick position
  1442. --------V-620063-----------------------------
  1443. INT 62 u - FGDRIVER v4.02 - "FG_INTKEY" - GET KEYSTROKE, NO WAIT
  1444.     AX = 0063h
  1445.     ES:BX -> variable pointer record (see #2619)
  1446. Return: variables updated
  1447. Notes:    the FGDRIVER functions are rearranged with each major release, but
  1448.       their parameters do not change (see #2604 at AX=0000h)
  1449.     If the keyboard buffer is empty, both the ASCII and extended keycodes
  1450.       are set to 00h
  1451. SeeAlso: AX=000Ah,AX=0046h,AX=0069h,AX=00DEh,INT 16/AH=01h
  1452.  
  1453. Format of FGDRIVER INTKEY variable pointer record:
  1454. Offset    Size    Description    (Table 2619)
  1455.  00h    WORD    segment of BYTE buffer for ASCII keycode
  1456.  02h    WORD    offset of BYTE buffer for ASCII keycode
  1457.  04h    WORD    segment of BYTE buffer for extended keycode
  1458.  06h    WORD    offset of BYTE buffer for extended keycode
  1459. --------V-620064-----------------------------
  1460. INT 62 u - FGDRIVER v4.02 - "FG_INVERT" - INVERT ORIENTATION OF BITMAP
  1461.     AX = 0064h
  1462.     ES:BX -> bitmap
  1463.     CX = width of bitmap in bytes
  1464.     DX = height of bitmap in pixel rows
  1465. Return: nothing
  1466. Note:    the FGDRIVER functions are rearranged with each major release, but
  1467.       their parameters do not change (see #2604 at AX=0000h)
  1468. --------V-620065-----------------------------
  1469. INT 62 u - FGDRIVER v4.02 - "FG_JUSTIFY" - SET TEXT OUTPUT JUSTIFICATION
  1470.     AX = 0065h
  1471.     BX = horizontal justification
  1472.           (00h centered, 01h right-justified, FFh left-justified)
  1473.     CX = vertical justification
  1474.           (00h centered, 01h top of characters, FFh bottom of chars)
  1475. Note:    the FGDRIVER functions are rearranged with each major release, but
  1476.       their parameters do not change (see #2604 at AX=0000h)
  1477. SeeAlso: AX=000Ch,AX=0037h,AX=0053h,AX=0057h,AX=0096h
  1478. --------V-620066-----------------------------
  1479. INT 62 u - FGDRIVER v4.02 - "FG_KBINIT" - ENABLE/DISABLE LOW-LEVEL KBD HANDLER
  1480.     AX = 0066h
  1481.     BX = new state (0000h disabled, 0001h enabled)
  1482. Notes:    the FGDRIVER functions are rearranged with each major release, but
  1483.       their parameters do not change (see #2604 at AX=0000h)
  1484.     When the low-level handler is enabled, "FG_GETKEY", "FG_INTKEY",
  1485.       "FG_WAITKEY", and all other functions calling DOS or BIOS keyboard
  1486.       services become unavailable
  1487. SeeAlso: AX=0067h,AX=0068h,AX=0069h
  1488. --------V-620067-----------------------------
  1489. INT 62 u - FGDRIVER v4.02 - "FG_KBLAST" - GET MOST RECENT SCANCODE PROCESSED
  1490.     AX = 0067h
  1491. Return: AX = scancode for keypress most recently processed by FastGraph's
  1492.           low-level keyboard handler, or 0000h if no keys since FG_KBINIT
  1493. Note:    the FGDRIVER functions are rearranged with each major release, but
  1494.       their parameters do not change (see #2604 at AX=0000h)
  1495. SeeAlso: AX=0066h,AX=0068h,AX=0069h
  1496. --------V-620068-----------------------------
  1497. INT 62 u - FGDRIVER v4.02 - "FG_KBRESET" - RESET LOW-LEVEL KEYBOARD HANDLER
  1498.     AX = 0068h
  1499. Note:    the FGDRIVER functions are rearranged with each major release, but
  1500.       their parameters do not change (see #2604 at AX=0000h)
  1501. SeeAlso: AX=0066h,AX=0067h,AX=0069h
  1502. --------V-620069-----------------------------
  1503. INT 62 u - FGDRIVER v4.02 - "FG_KBTEST" - CHECK WHETHER SPECIFIED KEY PRESSED
  1504.     AX = 0069h
  1505.     BX = scan code of desired key
  1506. Return: AX = state
  1507.         0000h key is not pressed
  1508.         0001h key is currently pressed
  1509. Notes:    the FGDRIVER functions are rearranged with each major release, but
  1510.       their parameters do not change (see #2604 at AX=0000h)
  1511.     The low-level keyboard handler must have been enabled with AX=0066h
  1512. SeeAlso: AX=0066h,AX=0067h,INT 16/AH=01h
  1513. --------V-62006A-----------------------------
  1514. INT 62 u - FGDRIVER v4.02 - "FG_LOADPCX" - LOAD .PCX INTO ACTIVE VIRTUAL BUFFER
  1515.     AX = 006Ah
  1516.     ES:BX -> ASCIZ filename for PCX image
  1517.     CX = control flags
  1518.         bit 0: use current palette, overriding stored .PCX palette
  1519.         bit 1: load at current graphics position, not stored position
  1520.         bit 2: load image from FG_IMAGEBUF buffer instead of .PCX file
  1521. Return: AX = status
  1522.         0000h successful
  1523.         0001h file not found
  1524.         0002h not a .PCX file
  1525. Note:    the FGDRIVER functions are rearranged with each major release, but
  1526.       their parameters do not change (see #2604 at AX=0000h)
  1527. SeeAlso: AX=006Ch,AX=00B9h,AX=00D5h
  1528. --------V-62006B-----------------------------
  1529. INT 62 u - FGDRIVER v4.02 - "FG_LOCATE" - SET TEXT-MODE CURSOR POSITION
  1530.     AX = 006Bh
  1531.     BX = row
  1532.     CX = column
  1533. Notes:    the FGDRIVER functions are rearranged with each major release, but
  1534.       their parameters do not change (see #2604 at AX=0000h)
  1535.     There are only eight text cursors shared by successive groups of
  1536.       eight video pages (pages 0, 8, 16, ... share one cursor, 1, 9, ...
  1537.       share the second, etc)
  1538. SeeAlso: AX=0054h,AX=0058h,AX=007Eh,AX=00E0h
  1539. --------V-62006C-----------------------------
  1540. INT 62 u - FGDRIVER v4.02 - "FG_MAKEPCX" - CREATE PCX FILE FROM SCREEN WINDOW
  1541.     AX = 006Ch
  1542.     BX = left edge in screen space units
  1543.     CX = right edge in screen space units
  1544.     DX = top edge in screen space units
  1545.     SI = bottom edge in screen space units
  1546.     ES:DI -> ASCIZ filename of PCX file to create
  1547. Return: AX = status
  1548.         0000h successful
  1549.         0001h file not created
  1550. Notes:    the FGDRIVER functions are rearranged with each major release, but
  1551.       their parameters do not change (see #2604 at AX=0000h)
  1552.     The PCX file is created from the specified region of the active video
  1553.       page; the left and right edges are adjusted to a byte boundary if
  1554.       necessary
  1555.     If the specified file already exists, it is overwritten
  1556.     This call is ignored in text and Hercules low-resolution graphics modes
  1557. SeeAlso: AX=005Bh,AX=006Dh,AX=006Ah,AX=006Eh,AX=00B9h,AX=00BAh,AX=00BBh
  1558. --------V-62006D-----------------------------
  1559. INT 62 u - FGDRIVER v4.02 - "FG_MAKEPPR" - CREATE PACKED PIXEL RUN FILE
  1560.     AX = 006Dh
  1561.     BX = left edge in screen space units
  1562.     CX = right edge in screen space units
  1563.     DX = top edge in screen space units
  1564.     SI = bottom edge in screen space units
  1565.     ES:DI -> ASCIZ filename of PPR file to create
  1566. Return: AX = status
  1567.         0000h successful
  1568.         0001h file not created
  1569. Notes:    the FGDRIVER functions are rearranged with each major release, but
  1570.       their parameters do not change (see #2604 at AX=0000h)
  1571.     The PPR file is created from the specified region of the active video
  1572.       page; the left and right edges are adjusted to byte boundaries if
  1573.       necessary
  1574.     If the specified file already exists, it is overwritten
  1575.     This call is ignored in text modes
  1576. SeeAlso: AX=005Bh,AX=006Ch,AX=006Eh,AX=00B9h,AX=00BAh,AX=00BBh
  1577. --------V-62006E-----------------------------
  1578. INT 62 u - FGDRIVER v4.02 - "FG_MAKESPR" - CREATE STANDARD PIXEL RUN FILE
  1579.     AX = 006Eh
  1580.     BX = left edge in screen space units
  1581.     CX = right edge in screen space units
  1582.     DX = top edge in screen space units
  1583.     SI = bottom edge in screen space units
  1584.     ES:DI -> ASCIZ filename of SPR file to create
  1585. Return: AX = status
  1586.         0000h successful
  1587.         0001h file not created
  1588. Notes:    the FGDRIVER functions are rearranged with each major release, but
  1589.       their parameters do not change (see #2604 at AX=0000h)
  1590.     The SPR file is created from the specified region of the active video
  1591.       page; the left and right edges are adjusted to byte boundaries if
  1592.       necessary
  1593.     If the specified file already exists, it is overwritten
  1594.     This call is ignored in text modes
  1595. SeeAlso: AX=005Bh,AX=006Ch,AX=006Dh,AX=00B9h,AX=00BAh,AX=00BBh
  1596. --------V-62006F-----------------------------
  1597. INT 62 u - FGDRIVER v4.02 - "FG_MAPRGB" - MAP COLOR COMPONENTS INTO PALETTE VAL
  1598.     AX = 006Fh
  1599.     BX = red component
  1600.     CX = green component
  1601.     DX = blue component
  1602. Return: AX = mode-specific palette value corresponding to specified components
  1603. Notes:    the FGDRIVER functions are rearranged with each major release, but
  1604.       their parameters do not change (see #2604 at AX=0000h)
  1605.     This function is only meaningful in 16-color graphics modes
  1606. SeeAlso: AX=004Eh,AX=00B3h
  1607. --------V-620070-----------------------------
  1608. INT 62 u - FGDRIVER v4.02 - "FG_MEASURE" - GET DELAY UNITS PER CLOCK TICK
  1609.     AX = 0070h
  1610. Return: AX = delay units per clock tick (processor-dependent)
  1611. Notes:    the FGDRIVER functions are rearranged with each major release, but
  1612.       their parameters do not change (see #2604 at AX=0000h)
  1613.     These delay units are used by "FG_STALL" (see AX=00BFh)
  1614. SeeAlso: AX=00BFh
  1615. --------V-620071-----------------------------
  1616. INT 62 u - FGDRIVER v4.02 - "FG_MEMAVAIL" - QUERY AMOUNT OF FREE MEMORY
  1617.     AX = 0071h
  1618. Return: DX:AX = number of bytes of conventional memory available
  1619. Note:    the FGDRIVER functions are rearranged with each major release, but
  1620.       their parameters do not change (see #2604 at AX=0000h)
  1621. SeeAlso: AX=005Dh,AX=0072h
  1622. --------V-620072-----------------------------
  1623. INT 62 u - FGDRIVER v4.02 - "FG_MEMORY" - GET SIZE OF VIDEO MEMORY
  1624.     AX = 0072h
  1625. Return: AX = size of video memory in KB
  1626. Notes:    the FGDRIVER functions are rearranged with each major release, but
  1627.       their parameters do not change (see #2604 at AX=0000h)
  1628.     You must first call "FG_SVGAINIT" (see AX=00C1h) before using this
  1629.       function
  1630. SeeAlso: AX=0071h
  1631. --------V-620073-----------------------------
  1632. INT 62 u - FGDRIVER v4.02 - "FG_MOUSE256" - DEFINE 256-COLOR MOUSE CURSOR
  1633.     AX = 0073h
  1634.     ES:BX -> 512-byte cursor definition
  1635.     CX = X offset of hot-spot within mouse cursor
  1636.     DX = Y offset of hot-spot within mouse cursor
  1637. Return: nothing
  1638. Notes:    the FGDRIVER functions are rearranged with each major release, but
  1639.       their parameters do not change (see #2604 at AX=0000h)
  1640.     the cursor definition array consists of 256 bytes defining the 16x16
  1641.       screen mask, followed by another 256 bytes definining the 16x16
  1642.       cursor mask
  1643. SeeAlso: AX=0074h,AX=0075h,AX=007Bh
  1644. --------V-620074-----------------------------
  1645. INT 62 u - FGDRIVER v4.02 - "FG_MOUSEBUT" - GET MOUSE BUTTON PRESS/RELEASE CNTS
  1646.     AX = 0074h
  1647.     CX = mouse button (1 = left press, 2 = right press, 3 = middle press,
  1648.           -1=left release, -2=right release, -3=middle release)
  1649.     ES:BX -> variable pointer record (see #2620)
  1650. Return: variables updated
  1651. Notes:    the FGDRIVER functions are rearranged with each major release, but
  1652.       their parameters do not change (see #2604 at AX=0000h)
  1653.     This function returns the count of presses or releases since the last
  1654.       call to this function; if the count is zero, row and column will
  1655.       also be zero
  1656. SeeAlso: AX=0075h,AX=0077h,AX=007Ah
  1657.  
  1658. Format of FGDRIVER MOUSEBUT variable pointer record:
  1659. Offset    Size    Description    (Table 2620)
  1660.  00h    WORD    segment of WORD buffer for press/release count
  1661.  02h    WORD    offset of WORD buffer for press/release count
  1662.  04h    WORD    segment of WORD buffer for screen space col of last press/rls
  1663.  06h    WORD    offset of WORD buffer for screen space col of last press/rels
  1664.  08h    WORD    segment of WORD buffer for screen space row of last press/rls
  1665.  0Ah    WORD    offset of WORD buffer for screen space row of last press/rls
  1666. --------V-620075-----------------------------
  1667. INT 62 u - FGDRIVER v4.02 - "FG_MOUSECUR" - SPECIFY TEXT-MODE MOUSE CURSOR
  1668.     AX = 0075h
  1669.     BX = screen mask
  1670.     CX = cursor mask
  1671. Notes:    the FGDRIVER functions are rearranged with each major release, but
  1672.       their parameters do not change (see #2604 at AX=0000h)
  1673.     This call is ignored in graphics modes
  1674. SeeAlso: AX=007Bh,AX=007Dh
  1675. --------V-620076-----------------------------
  1676. INT 62 u - FGDRIVER v4.02 - "FG_MOUSEFIN" - UNHOOK FASTGRAPH MOUSE HANDLER
  1677.     AX = 0076h
  1678. Notes:    the FGDRIVER functions are rearranged with each major release, but
  1679.       their parameters do not change (see #2604 at AX=0000h)
  1680.     This function should be called before switching back to text mode if
  1681.       "FG_MOUSEINI" was called while in an SVGA graphics mode
  1682. SeeAlso: AX=0077h
  1683. --------V-620077-----------------------------
  1684. INT 62 u - FGDRIVER v4.02 - "FG_MOUSEINI" - INITIALIZE MOUSE SUPPORT
  1685.     AX = 0077h
  1686. Return: AX = status
  1687.         0002h two-button mouse
  1688.         0003h three-button mouse
  1689.         FFFFh initialization failed
  1690. Notes:    the FGDRIVER functions are rearranged with each major release, but
  1691.       their parameters do not change (see #2604 at AX=0000h)
  1692.     After this call, the mouse cursor is invisible
  1693. SeeAlso: AX=0076h,AX=0078h,AX=007Ch
  1694. --------V-620078-----------------------------
  1695. INT 62 u - FGDRIVER v4.02 - "FG_MOUSELIM" - SPECIFY MOUSE CURSOR LIMITS
  1696.     AX = 0078h
  1697.     BX = left-most position allowed for mouse cursor
  1698.     CX = right-most position allowed
  1699.     DX = top-most position allowed
  1700.     SI = bottom-most position allowed
  1701. Note:    the FGDRIVER functions are rearranged with each major release, but
  1702.       their parameters do not change (see #2604 at AX=0000h)
  1703. SeeAlso: AX=0077h,AX=0079h,INT 33/AX=0007h,INT 33/AX=0008h
  1704. --------V-620079-----------------------------
  1705. INT 62 u - FGDRIVER v4.02 - "FG_MOUSEMOV" - SET MOUSE CURSOR POSITION
  1706.     AX = 0079h
  1707.     BX = new column
  1708.     CX = new row
  1709. Notes:    the FGDRIVER functions are rearranged with each major release, but
  1710.       their parameters do not change (see #2604 at AX=0000h)
  1711.     This function will not move the mouse cursor outside the bounding box
  1712.       specified with AX=009Bh
  1713. SeeAlso: AX=0078h,AX=007Ah,INT 33/AX=0004h
  1714. --------V-62007A-----------------------------
  1715. INT 62 u - FGDRIVER v4.02 - "FG_MOUSEPOS" - GET CURRENT MOUSE POSITION
  1716.     AX = 007Ah
  1717.     ES:BX -> variable pointer record (see #2621)
  1718. Note:    the FGDRIVER functions are rearranged with each major release, but
  1719.       their parameters do not change (see #2604 at AX=0000h)
  1720. SeeAlso: AX=0079h
  1721.  
  1722. Format of FGDRIVER MOUSEPOS variable pointer record:
  1723. Offset    Size    Description    (Table 2621)
  1724.  00h    WORD    segment of WORD buffer for mouse column
  1725.  02h    WORD    offset of WORD buffer for mouse column
  1726.  04h    WORD    segment of WORD buffer for mouse row
  1727.  06h    WORD    offset of WORD buffer for mouse row
  1728.  08h    WORD    segment of WORD buffer for button status
  1729.  0Ah    WORD    offset of WORD buffer for button status
  1730. Note:    button status: bit 0 = left button, bit 1 = right, bit 2 = middle
  1731. --------V-62007B-----------------------------
  1732. INT 62 u - FGDRIVER v4.02 - "FG_MOUSEPTR" - SPECIFY GRAPH-MODE MOUSE CURSOR
  1733.     AX = 007Bh
  1734.     ES:BX -> masks (16-byte screen mask followed by 16-byte cursor mask)
  1735.     CX = X offset of hot spot from upper left corner
  1736.     DX = Y offset of hot spot from upper left corner
  1737. Notes:    the FGDRIVER functions are rearranged with each major release, but
  1738.       their parameters do not change (see #2604 at AX=0000h)
  1739.     This call is ignored in text modes
  1740. SeeAlso: AX=0073h,AX=0075h,INT 33/AX=0009h
  1741. --------V-62007C-----------------------------
  1742. INT 62 u - FGDRIVER v4.02 - "FG_MOUSESPD" - SET MOUSE CURSOR SPEED
  1743.     AX = 007Ch
  1744.     BX = horizontal mickeys per eight pixels of movement (default 16)
  1745.     CX = vertical mickeys per eight pixels of movement (default 16)
  1746. Note:    the FGDRIVER functions are rearranged with each major release, but
  1747.       their parameters do not change (see #2604 at AX=0000h)
  1748. SeeAlso: INT 33/AX=000Fh,INT 33/AX=001Ah
  1749. --------V-62007D-----------------------------
  1750. INT 62 u - FGDRIVER v4.02 - "FG_MOUSEVIS" - SET MOUSE CURSOR VISIBILITY
  1751.     AX = 007Dh
  1752.     BX = new state (0000h invisible, 0001h visible)
  1753. Note:    the FGDRIVER functions are rearranged with each major release, but
  1754.       their parameters do not change (see #2604 at AX=0000h)
  1755. SeeAlso: AX=0077h,INT 33/AX=0001h,INT 33/AX=0002h
  1756. --------V-62007E-----------------------------
  1757. INT 62 u - FGDRIVER v4.02 - "FG_MOVE" - SET GRAPHICS CURSOR POSITION
  1758.     AX = 007Eh
  1759.     BX = new column
  1760.     CX = new row
  1761. Notes:    the FGDRIVER functions are rearranged with each major release, but
  1762.       their parameters do not change (see #2604 at AX=0000h)
  1763.     This call is ignored in text modes
  1764. SeeAlso: AX=0054h,AX=0058h,AX=006Bh,AX=0079h,AX=007Fh,AX=00E0h
  1765. --------V-62007F-----------------------------
  1766. INT 62 u - FGDRIVER v4.02 - "FG_MOVEREL" - ADJUST GRAPHICS CURSOR POSITION
  1767.     AX = 007Fh
  1768.     BX = column offset
  1769.     CX = row offset
  1770. Notes:    the FGDRIVER functions are rearranged with each major release, but
  1771.       their parameters do not change (see #2604 at AX=0000h)
  1772.     This call is ignored in text modes
  1773. SeeAlso: AX=0054h,AX=0058h,AX=007Eh
  1774. --------V-620080-----------------------------
  1775. INT 62 u - FGDRIVER v4.02 - "FG_MUSIC" - PLAY SERIES OF NOTES
  1776.     AX = 0080h
  1777.     ES:BX -> '$'-terminated music string in BASIC PLAY format
  1778. Return: after music completed
  1779. Notes:    the FGDRIVER functions are rearranged with each major release, but
  1780.       their parameters do not change (see #2604 at AX=0000h)
  1781.     This call is ignored if asynchronous sound (AX=00A5h,AX=00A8h,
  1782.       AX=00AAh) is already in progress
  1783. SeeAlso: AX=0081h,AX=00BCh,AX=00DBh
  1784. --------V-620081-----------------------------
  1785. INT 62 u - FGDRIVER v4.02 - "FG_MUSICB" - PLAY SERIES OF NOTES IN BACKGROUND
  1786.     AX = 0081h
  1787.     CX = number of repetitions (negative = continuous play)
  1788.     ES:BX -> '$'-terminated music string in BASIC PLAY format
  1789. Notes:    the FGDRIVER functions are rearranged with each major release, but
  1790.       their parameters do not change (see #2604 at AX=0000h)
  1791.     This call is ignored if asynchronous sound (AX=00A5h,AX=00A8h,
  1792.       AX=00AAh) is already in progress
  1793. SeeAlso: AX=0059h,AX=0081h,AX=00BDh,AX=00DCh
  1794. --------V-620082-----------------------------
  1795. INT 62 u - FGDRIVER v4.02 - "FG_NUMLOCK" - GET STATE OF NUMLOCK KEY
  1796.     AX = 0082h
  1797. Return: AX = NumLock state (0000h off, 0001h on)
  1798. Note:    the FGDRIVER functions are rearranged with each major release, but
  1799.       their parameters do not change (see #2604 at AX=0000h)
  1800. SeeAlso: AX=000Ah,AX=00A4h,AX=00A8h,AX=00B1h
  1801. --------V-620083-----------------------------
  1802. INT 62 u - FGDRIVER v4.02 - "FG_PACK" - CONVERT PIXEL-PER-BYTE TO PACKED BITMAP
  1803.     AX = 0083h
  1804.     ES:BX -> variable pointer record (see #2622)
  1805.     CX = width of bitmap in pixels
  1806.     DX = height of bitmap in pixels
  1807. Return: result bitmap buffer updated
  1808. SeeAlso: AX=00CBh
  1809.  
  1810. Format of FGDRIVER PACK variable pointer record:
  1811. Offset    Size    Description    (Table 2622)
  1812.  00h    WORD    segment of source (mode-independent) bitmap
  1813.  02h    WORD    offset of source (mode-independent) bitmap
  1814.  04h    WORD    segment of buffer for result (mode-specific) bitmap
  1815.  06h    WORD    offset of buffer for result (mode-specific) bitmap
  1816. --------V-620084-----------------------------
  1817. INT 62 u - FGDRIVER v4.02 - "FG_PAGESIZE" - GET VIDEO PAGE SIZE FOR CURR MODE
  1818.     AX = 0084h
  1819. Return: DX:AX = page size in bytes
  1820. Note:    the FGDRIVER functions are rearranged with each major release, but
  1821.       their parameters do not change (see #2604 at AX=0000h)
  1822. SeeAlso: AX=0072h
  1823. --------V-620085-----------------------------
  1824. INT 62 u - FGDRIVER v4.02 - "FG_PAINT" - FLOOD CLOSED REGION WITH COLOR
  1825.     AX = 0085h
  1826.     BX = column
  1827.     CX = row
  1828. Notes:    the FGDRIVER functions are rearranged with each major release, but
  1829.       their parameters do not change (see #2604 at AX=0000h)
  1830.     This function fills an arbitrary closed region around the specified
  1831.       point with the current color; the screen edges are not considered
  1832.       region boundaries
  1833.     This call is ignored in text modes
  1834. SeeAlso: AX=0035h
  1835. --------V-620086-----------------------------
  1836. INT 62 u - FGDRIVER v4.02 - "FG_PALETTE" - SET PALETTE / SET VIDEO DAC REGISTER
  1837.     AX = 0086h
  1838. ---CGA 4-color graphics---
  1839.     BX = CGA paletee number
  1840.     CX = background color
  1841. ---CGA 2-color graphics---
  1842.     BX ignored
  1843.     CX = foreground color
  1844. ---16-color graphics---
  1845.     BX = palette register number
  1846.     CX = palette value
  1847. ---256-color graphics---
  1848.     BX = DAC register number
  1849.     CX =  DAC value
  1850. Notes:    the FGDRIVER functions are rearranged with each major release, but
  1851.       their parameters do not change (see #2604 at AX=0000h)
  1852.     This function is ignored in text modes and Hercules graphics modes
  1853.     Few EGA/VGA adapters correctly set the foreground color in CGA mode 6
  1854. SeeAlso: AX=0041h,AX=004Eh,AX=0087h,AX=00ABh
  1855. --------V-620087-----------------------------
  1856. INT 62 u - FGDRIVER v4.02 - "FG_PALETTES" - SET ALL PALETTE REGISTERS
  1857.     AX = 0087h
  1858.     ES:BX -> array of 16 WORDs containing values for palette registers
  1859.           (or first 16 DAC registers in 256-color modes)
  1860. Notes:    the FGDRIVER functions are rearranged with each major release, but
  1861.       their parameters do not change (see #2604 at AX=0000h)
  1862.     This function is ignored in text modes, CGA and Hercules graphics modes
  1863. SeeAlso: AX=0041h,AX=004Eh,AX=0086h,AX=00ABh
  1864. --------V-620088-----------------------------
  1865. INT 62 u - FGDRIVER v4.02 - "FG_PAN" - SET SCREEN ORIGIN
  1866.     AX = 0088h
  1867.     BX = new column for screen origin
  1868.     CX = new row for screen origin
  1869. Note:    the FGDRIVER functions are rearranged with each major release, but
  1870.       their parameters do not change (see #2604 at AX=0000h)
  1871. SeeAlso: AX=00B2h
  1872. --------V-620089-----------------------------
  1873. INT 62 u - FGDRIVER v4.02 - "FG_PATTERN" - SPECIFY DISPLAY PATTERN FOR COLOR
  1874.     AX = 0089h
  1875.     BX = index of pattern to define
  1876.     CX = number of predefined display pattern
  1877. Notes:    the FGDRIVER functions are rearranged with each major release, but
  1878.       their parameters do not change (see #2604 at AX=0000h)
  1879.     When displaying a pixel run map, Fastgraph uses the pattern associated
  1880.       with each color index rather than displaying the actual color
  1881.     This call has no effect in text and 256-color graphics modes
  1882. SeeAlso: AX=0023h,AX=0045h
  1883. --------V-62008A-----------------------------
  1884. INT 62 u - FGDRIVER v4.02 - "FG_PCXHEAD" - GET PCX FILE HEADER
  1885.     AX = 008Ah
  1886.     ES:BX -> variable pointer record (see #2623)
  1887. Return: AX = status
  1888.         0000h successful
  1889.         FFFEh not a PCX file
  1890.         FFFFh file does not exist
  1891. Note:    the FGDRIVER functions are rearranged with each major release, but
  1892.       their parameters do not change (see #2604 at AX=0000h)
  1893. SeeAlso: AX=008Bh,AX=00B9h
  1894.  
  1895. Format of FGDRIVER PCXHEAD variable pointer record:
  1896. Offset    Size    Description    (Table 2623)
  1897.  00h    WORD    segment of ASCIZ filename
  1898.  02h    WORD    offset of ASCIZ filename
  1899.  04h    WORD    segment of 128-byte buffer for PCX header
  1900.  06h    WORD    offset of 128-byte buffer for PCX header
  1901. --------V-62008B-----------------------------
  1902. INT 62 u - FGDRIVER v4.02 - "FG_PCXMODE" - GET OPTIMAL VIDEO MODE FOR DISPLAY
  1903.     AX = 008Bh
  1904.     ES:BX -> PCX header (see AX=008Ah)
  1905. Return: AX = optimal video mode for PCX file
  1906.         FFFEh not a valid PCX header
  1907.         FFFFh unable to determine compatible video mode
  1908. Note:    the FGDRIVER functions are rearranged with each major release, but
  1909.       their parameters do not change (see #2604 at AX=0000h)
  1910. SeeAlso: AX=008Ah,AX=00B9h
  1911. --------V-62008C-----------------------------
  1912. INT 62 u - FGDRIVER v4.02 - "FG_PCXPAL" - GET PALETTE STORED IN PCX FILE
  1913.     AX = 008Ch
  1914.     ES:BX -> variable pointer record (see #2624)
  1915. Return: AX = number of colors in palette (16 or 256) or
  1916.         FFFEh not a valid PCX file
  1917.         FFFFh file not found
  1918. Note:    the FGDRIVER functions are rearranged with each major release, but
  1919.       their parameters do not change (see #2604 at AX=0000h)
  1920. SeeAlso: AX=008Dh
  1921.  
  1922. Format of FGDRIVER PCXPAL variable pointer record:
  1923. Offset    Size    Description    (Table 2624)
  1924.  00h    WORD    segment of ASCIZ .PCX filename
  1925.  02h    WORD    offset of ASCIZ .PCX filename
  1926.  04h    WORD    segment of buffer for .PCX palette RGB triples
  1927.  06h    WORD    offset of buffer for .PCX palette RGB triples
  1928. Note:    the buffer for the palette must hold at least three times as many bytes
  1929.       as there are colors in the palette
  1930. SeeAlso: #2625
  1931. --------V-62008D-----------------------------
  1932. INT 62 u - FGDRIVER v4.02 - "FG_PCXRANGE" - GET EXTENT OF PCX IMAGE
  1933.     AX = 008Dh
  1934.     ES:BX -> variable pointer record (see #2625)
  1935. Return: indicated variables updated; if the indicated header is not valid,
  1936.       all of the coordinate variables are set to FFFFh
  1937. Note:    the FGDRIVER functions are rearranged with each major release, but
  1938.       their parameters do not change (see #2604 at AX=0000h)
  1939. SeeAlso: AX=008Ch
  1940.  
  1941. Format of FGDRIVER PCXRANGE variable pointer record:
  1942. Offset    Size    Description    (Table 2625)
  1943.  00h    WORD    segment of 128-byte PCX file header
  1944.  02h    WORD    offset of 128-byte PCX file header
  1945.  04h    WORD    segment of WORD buffer for X coordinate of image's left edge
  1946.  04h    WORD    offset of WORD buffer for X coordinate of image's left edge
  1947.  08h    WORD    segment of WORD buffer for X coordinate of image's right edge
  1948.  0Ah    WORD    offset of WORD buffer for X coordinate of image's right edge
  1949.  0Ch    WORD    segment of WORD buffer for Y coordinate of image's top edge
  1950.  0Eh    WORD    offset of WORD buffer for Y coordinate of image's top edge
  1951.  10h    WORD    segment of WORD buffer for X coordinate of image's bottom edge
  1952.  12h    WORD    offset of WORD buffer for X coordinate of image's bottom edge
  1953. SeeAlso: #2624
  1954. --------V-62008E-----------------------------
  1955. INT 62 u - FGDRIVER v4.02 - "FG_PLAYING" - DETERMINE WHETHER ASYNC SOUND ACTIVE
  1956.     AX = 008Eh
  1957. Return: AX = sound state (0 = no asynchronous sound, 1 = async sound playing)
  1958. Note:    the FGDRIVER functions are rearranged with each major release, but
  1959.       their parameters do not change (see #2604 at AX=0000h)
  1960. SeeAlso: AX=0059h,AX=0081h,AX=00BDh,AX=00DCh
  1961. --------V-62008F-----------------------------
  1962. INT 62 u - FGDRIVER v4.02 - "FG_POINT" - DISPLAY A PIXEL
  1963.     AX = 008Fh
  1964.     BX = column
  1965.     CX = row
  1966. Notes:    the FGDRIVER functions are rearranged with each major release, but
  1967.       their parameters do not change (see #2604 at AX=0000h)
  1968.     This call is ignored in text modes
  1969. SeeAlso: AX=0006h,AX=001Dh,AX=004Dh,AX=0090h
  1970. --------V-620090-----------------------------
  1971. INT 62 u - FGDRIVER v4.02 - "FG_POINTX" - DISPLAY A PIXEL IN XOR MODE
  1972.     AX = 0090h
  1973.     BX = column
  1974.     CX = row
  1975. Notes:    the FGDRIVER functions are rearranged with each major release, but
  1976.       their parameters do not change (see #2604 at AX=0000h)
  1977.     This call is ignored in text modes
  1978. SeeAlso: AX=004Dh,AX=008Fh
  1979. --------V-620091-----------------------------
  1980. INT 62 u - FGDRIVER v4.02 - "FG_POLYEDGE" - SPECIFY INCLUSION OF FINAL PIXELS
  1981.     AX = 0091h
  1982.     BX = edge flag
  1983.         0000h include right- and bottom-edge pixels when drawing polygons
  1984.           with FG_POLYFILL
  1985.         0001h (default) exclue right- and bottom-edge pixels
  1986. SeeAlso: AX=0092h
  1987. --------V-620092-----------------------------
  1988. INT 62 u - FGDRIVER v4.02 - "FG_POLYFILL" - DRAW A FILLED CONVEX POLYGON
  1989.     AX = 0092h
  1990.     CX = number of vertices
  1991.     ES:BX -> variable pointer record (see #2626)
  1992. Notes:    the FGDRIVER functions are rearranged with each major release, but
  1993.       their parameters do not change (see #2604 at AX=0000h)
  1994.     The vertex array consists of pairs of words specifying the X and Y
  1995.       coordinates of each vertex; the work array is used internally and
  1996.       must contain at least four times as many bytes as the polygon is
  1997.       high in pixels
  1998.     This function is ignored in text modes
  1999.     If the polygon is non-convex, only a portion of it may be filled
  2000. SeeAlso: AX=000Eh,AX=0027h,AX=0091h,AX=0093h,AX=0094h,AX=0095h
  2001.  
  2002. Format of FGDRIVER POLYFILL variable pointer record:
  2003. Offset    Size    Description    (Table 2626)
  2004.  00h    WORD    segment of vertex array (see #2628)
  2005.  02h    WORD    offset of vertex array
  2006.  04h    WORD    segment of work array
  2007.  06h    WORD    offset of work array
  2008. SeeAlso: #2627
  2009. --------V-620093-----------------------------
  2010. INT 62 u - FGDRIVER v4.02 - "FG_POLYGON" - DRAW AN UNFILLED POLYGON
  2011.     AX = 0093h
  2012.     CX = number of vertices in polygon
  2013.     ES:BX -> variable pointer record (see #2627)
  2014. Notes:    the FGDRIVER functions are rearranged with each major release, but
  2015.       their parameters do not change (see #2604 at AX=0000h)
  2016.     This call is ignored in text modes
  2017. SeeAlso: AX=0091h,AX=0092h,AX=0094h,AX=0095h
  2018.  
  2019. Format of FGDRIVER POLYGON variable pointer record:
  2020. Offset    Size    Description    (Table 2627)
  2021.  00h    WORD    segment of WORD array containing vertex columns
  2022.  02h    WORD    offset of WORD array containing vertex columns
  2023.  04h    WORD    segment of WORD array containing vertex rows
  2024.  06h    WORD    offset of WORD array containing vertex rows
  2025. SeeAlso: #2626
  2026. --------V-620094-----------------------------
  2027. INT 62 u - FGDRIVER v4.02 - "FG_POLYLINE" - DRAW AN UNFILLED POLYGON
  2028.     AX = 0094h
  2029.     CX = number of vertices in polygon
  2030.     ES:BX -> vertex array (see #2628)
  2031. Notes:    the FGDRIVER functions are rearranged with each major release, but
  2032.       their parameters do not change (see #2604 at AX=0000h)
  2033.     This function is equivalent to "FG_POLYGON", but uses only a single
  2034.       array to define the vertices
  2035.     This call is ignored in text modes
  2036. SeeAlso: AX=008Fh,AX=0092h,AX=0093h,AX=0095h
  2037.  
  2038. Format of FGDRIVER POLYFILL/POLYLINE vertex array element:
  2039. Offset    Size    Description    (Table 2628)
  2040.  00h    WORD    column
  2041.  02h    WORD    row
  2042. SeeAlso: #2627
  2043. --------V-620095-----------------------------
  2044. INT 62 u - FGDRIVER v4.02 - "FG_POLYOFF" - DEFINE POLYGON DRAWING OFFSET
  2045.     AX = 0095h
  2046.     BX = horizontal offset (default 0)
  2047.     CX = vertical offset (default 0)
  2048. Desc:    define the offsets applied to all vertices of polygons drawn with
  2049.       "FG_POLYFILL" or "FG_POLYLINE"
  2050. Note:    the FGDRIVER functions are rearranged with each major release, but
  2051.       their parameters do not change (see #2604 at AX=0000h)
  2052. SeeAlso: AX=0092h,AX=0094h
  2053. --------V-620096-----------------------------
  2054. INT 62 u - FGDRIVER v4.02 - "FG_PRINT" - DISPLAY STRING OF HARDWARE CHARACTERS
  2055.     AX = 0096h
  2056.     CX = length of string
  2057.     ES:BX -> string to display
  2058. Notes:    the FGDRIVER functions are rearranged with each major release, but
  2059.       their parameters do not change (see #2604 at AX=0000h)
  2060.     The string is displayed in the current color, and the graphics cursor
  2061.       is updated to be just to the right of the last displayed character
  2062.     This function is ignored in text modes
  2063. SeeAlso: AX=000Ch,AX=0037h,AX=0065h,AX=0097h
  2064. --------V-620097-----------------------------
  2065. INT 62 u - FGDRIVER v4.02 - "FG_PRINTC" - DISPLAY STRING OF HW CHARS (CLIPPED)
  2066.     AX = 0097h
  2067.     CX = length of string
  2068.     ES:BX -> string to display
  2069. Notes:    the FGDRIVER functions are rearranged with each major release, but
  2070.       their parameters do not change (see #2604 at AX=0000h)
  2071.     The string is displayed in the current color, and the graphics cursor
  2072.       is updated to be just to the right of the last displayed character;
  2073.       only the portion of the string that lies within the current clipping
  2074.       area is displayed
  2075.     This function is ignored in text modes
  2076. SeeAlso: AX=0096h
  2077. --------V-620098-----------------------------
  2078. INT 62 u - FGDRIVER v4.02 - "FG_PUTBLOCK" - RESTORE RECTANGLE OF DISPLAY
  2079.     AX = 0098h
  2080.     ES:BX -> buffer containing previously-saved image
  2081.     CX = left edge
  2082.     DX = right edge
  2083.     SI = top edge
  2084.     DI = bottom edge
  2085. Notes:    the FGDRIVER functions are rearranged with each major release, but
  2086.       their parameters do not change (see #2604 at AX=0000h)
  2087.     In text modes, coordinates are character positions; in graphics modes,
  2088.       they are defined in screen space, and the left and right edges are
  2089.       adjusted to a byte boundary if necessary
  2090. SeeAlso: AX=003Ch,AX=0099h
  2091. --------V-620099-----------------------------
  2092. INT 62 u - FGDRIVER v4.02 - "FG_PUTIMAGE" - DISPLAY MODE-SPECIFIC BITMAP IMAGE
  2093.     AX = 0099h
  2094.     ES:BX -> buffer containing mode-specific bitmap
  2095.     CX = width in bytes
  2096.     DX = height in pixel rows
  2097. Notes:    the FGDRIVER functions are rearranged with each major release, but
  2098.       their parameters do not change (see #2604 at AX=0000h)
  2099.     The bitmap is displayed with its lower left corner at the graphics
  2100.       cursor position; color 0 is NOT treated as transparent
  2101. SeeAlso: AX=0011h,AX=0024h,AX=0036h,AX=0044h,AX=0098h
  2102. --------V-62009A-----------------------------
  2103. INT 62 u - FGDRIVER v4.02 - "FG_QUIET" - STOP CONTINUOUS SYNCHRONOUS SOUND
  2104.     AX = 009Ah
  2105. Notes:    the FGDRIVER functions are rearranged with each major release, but
  2106.       their parameters do not change (see #2604 at AX=0000h)
  2107.     This call has no effect if there is no continuous sound playing
  2108. SeeAlso: AX=0059h,AX=0080h,AX=00BDh,AX=00DCh
  2109. --------V-62009B-----------------------------
  2110. INT 62 u - FGDRIVER v4.02 - "FG_RECT" - DRAW UNFILLED RECTANGLE IN SCREEN SPACE
  2111.     AX = 009Bh
  2112.     BX = left edge column
  2113.     CX = right edge column
  2114.     DX = top edge row
  2115.     SI = bottom edge row
  2116. Note:    the FGDRIVER functions are rearranged with each major release, but
  2117.       their parameters do not change (see #2604 at AX=0000h)
  2118. SeeAlso: AX=0006h,AX=0012h,AX=0023h,AX=003Ch
  2119. --------V-62009C-----------------------------
  2120. INT 62 u - FGDRIVER v4.02 - "FG_RESET" - ERASE SCREEN AND RESTORE SCREEN ATTR
  2121.     AX = 009Ch
  2122. Notes:    the FGDRIVER functions are rearranged with each major release, but
  2123.       their parameters do not change (see #2604 at AX=0000h)
  2124.     This call is ignored in graphics modes
  2125.     The screen attributes are only restored if ANSI.SYS is loaded
  2126. SeeAlso: AX=0028h,AX=00B0h
  2127. --------V-62009D-----------------------------
  2128. INT 62 u - FGDRIVER v4.02 - "FG_RESIZE" - SET GRAPHICS MODE VIDEO PAGE SIZE
  2129.     AX = 009Dh
  2130.     BX = new page width in pixels
  2131.     CX = new page height in pixels
  2132. Notes:    the FGDRIVER functions are rearranged with each major release, but
  2133.       their parameters do not change (see #2604 at AX=0000h)
  2134.     The visible page must be set to 0000h before making this call
  2135.     The mouse, joysticks, expanded memory, and extended memory must be
  2136.       reinitialized after this call
  2137. SeeAlso: AX=0084h,AX=00ACh
  2138. --------V-62009E-----------------------------
  2139. INT 62 u - FGDRIVER v4.02 - "FG_RESTORE" - COPY REGION FROM HIDDEN TO VIS PAGE
  2140.     AX = 009Eh
  2141.     BX = left edge column
  2142.     CX = right edge column
  2143.     DX = top edge row
  2144.     SI = bottom edge row
  2145. Notes:    the FGDRIVER functions are rearranged with each major release, but
  2146.       their parameters do not change (see #2604 at AX=0000h)
  2147.     The left and right edges are adjusted to byte boundaries if necessary
  2148. SeeAlso: AX=00A2h,AX=00C6h
  2149. --------V-62009F-----------------------------
  2150. INT 62 u - FGDRIVER v4.02 - "FG_RESUME" - RESTART ASYNCHRONOUS SOUND
  2151.     AX = 009Fh
  2152. Note:    the FGDRIVER functions are rearranged with each major release, but
  2153.       their parameters do not change (see #2604 at AX=0000h)
  2154. SeeAlso: AX=00BDh,AX=00C0h
  2155. --------V-6200A0-----------------------------
  2156. INT 62 u - FGDRIVER v4.02 - "FG_REVIMAGE" - DISPLAY REVERSED IMAGE (BITMAP)
  2157.     AX = 00A0h
  2158.     ES:BX -> mode-specific bitmap
  2159.     CX = width of bitmap in bytes
  2160.     DX = height of bitmap in pixel rows
  2161. Notes:    the FGDRIVER functions are rearranged with each major release, but
  2162.       their parameters do not change (see #2604 at AX=0000h)
  2163.     This call is ignored in text modes
  2164.     The image is drawn with its lower left corner at the current graphics
  2165.       cursor position
  2166. SeeAlso: AX=0011h,AX=0024h,AX=0036h,AX=0044h,AX=00A1h,AX=00A9h,AX=00B9h
  2167. --------V-6200A1-----------------------------
  2168. INT 62 u - FGDRIVER v4.02 - "FG_REVMASK" - DISPLAY REVERSED IMAGE (MASKING MAP)
  2169.     AX = 00A1h
  2170.     ES:BX -> array containing image stored as a masking map (see #2605)
  2171.     CX = number of pixel runs in masking map
  2172.     DX = width of masking map in pixels
  2173. Notes:    the FGDRIVER functions are rearranged with each major release, but
  2174.       their parameters do not change (see #2604 at AX=0000h)
  2175.     This call is ignored in text modes and in native EGA and VGA graphics
  2176.       modes
  2177.     The image is drawn with its lower left corner at the current graphics
  2178.       cursor position
  2179. SeeAlso: AX=0010h,AX=001Fh,AX=0034h,AX=00A0h,AX=00A9h,AX=00C5h
  2180. --------V-6200A2-----------------------------
  2181. INT 62 u - FGDRIVER v4.02 - "FG_SAVE" - COPY REGION FROM VISIBLE TO HIDDEN PAGE
  2182.     AX = 00A2h
  2183.     BX = left edge column
  2184.     CX = right edge column
  2185.     DX = top edge row
  2186.     SI = bottom edge row
  2187. Notes:    the FGDRIVER functions are rearranged with each major release, but
  2188.       their parameters do not change (see #2604 at AX=0000h)
  2189.     The left and right edges are adjusted to byte boundaries if necessary
  2190. SeeAlso: AX=009Eh,AX=00C6h
  2191. --------V-6200A3-----------------------------
  2192. INT 62 u - FGDRIVER v4.02 - "FG_SCALE" - SCALE BITMAP
  2193.     AX = 00A3h
  2194.     ES:BX -> variable pointer record (see #2629)
  2195.     CX = width of source bitmap in pixels (0 < width <= 1024)
  2196.     DX = height of source bitmap in pixels (0 < height <= 1024)
  2197.     SI = desired width of scaled bitmap (0 < width <= 1024)
  2198.     DI = desired height of scaled bitmap (0 < height <= 1024)
  2199. Return: nothing
  2200. SeeAlso: AX=00B7h
  2201.  
  2202. Format of FGDRIVER SCALE variable pointer record:
  2203. Offset    Size    Description    (Table 2629)
  2204.  00h    WORD    segment of source bitmap (one pixel per byte)
  2205.  02h    WORD    offset of source bitmap
  2206.  04h    WORD    segment of buffer for resulting scaled bitmap
  2207.  06h    WORD    offset of buffer for resulting scaled bitmap
  2208. --------V-6200A4-----------------------------
  2209. INT 62 u - FGDRIVER v4.02 - "FG_SCRLOCK" - GET STATE OF SCROLL LOCK KEY
  2210.     AX = 00A4h
  2211. Return: AX = ScrollLock state (0000h off, 0001h on)
  2212. Program: FGDRIVER is the external video driver for the shareware
  2213.       Fastgraph/Light by Ted Gruber Software
  2214. Note:    the FGDRIVER functions are rearranged with each major release, but
  2215.       their parameters do not change (see #2604 at AX=0000h)
  2216. SeeAlso: AX=000Ah,AX=0082h,AX=00A8h,AX=00B1h
  2217. --------V-6200A5-----------------------------
  2218. INT 62 u - FGDRIVER v4.02 - "FG_SCROLL" - VERTICALLY SCROLL SCREEN REGION
  2219.     AX = 00A5h
  2220.     BX = left edge column
  2221.     CX = right edge column
  2222.     DX = top edge row
  2223.     SI = bottom edge row
  2224.     DI = number of pixels by which to scroll (positive scrolls up,
  2225.           negative scrolls down)
  2226.     ES = type of scroll
  2227.         0000h circular (rows scrolled off are copied to vacated rows)
  2228.         else vacated rows are filled with the current color
  2229. Notes:    the FGDRIVER functions are rearranged with each major release, but
  2230.       their parameters do not change (see #2604 at AX=0000h)
  2231.     In graphics modes, the left and right edges are adjusted to byte
  2232.       boundaries if necessary
  2233.     Circular scrolling uses part of the hidden page as a workspace
  2234. SeeAlso: AX=0088h,AX=00B2h
  2235. --------V-6200A6-----------------------------
  2236. INT 62 u - FGDRIVER v4.02 - "FG_SETATTR" - SET TEXT-MODE CHARACTER ATTRIBUTE
  2237.     AX = 00A6h
  2238.     BX = foreground
  2239.     CX = background
  2240.     DX = blink (0000h nonblinking, 0001h blink)
  2241. Notes:    the FGDRIVER functions are rearranged with each major release, but
  2242.       their parameters do not change (see #2604 at AX=0000h)
  2243.     This call is ignored in graphics modes
  2244. SeeAlso: AX=000Bh,AX=003Ah,AX=0048h
  2245. --------V-6200A7-----------------------------
  2246. INT 62 u - FGDRIVER v4.02 - "FG_SETBANKS" - SET SVGA READ AND WRITE BANKS
  2247.     AX = 00A7h
  2248.     BX = memory bank from which to read (FFFFh leave unchanged)
  2249.     CX = memory bank to which to write (FFFFh leave unchanged)
  2250. Note:    the FGDRIVER functions are rearranged with each major release, but
  2251.       their parameters do not change (see #2604 at AX=0000h)
  2252. SeeAlso: AX=003Bh
  2253. --------V-6200A8-----------------------------
  2254. INT 62 u - FGDRIVER v4.02 - "FG_SETCAPS" - SET STATE OF CAPSLOCK KEY
  2255.     AX = 00A8h
  2256.     BX = new state (0000h off, 0001h on)
  2257. Note:    the FGDRIVER functions are rearranged with each major release, but
  2258.       their parameters do not change (see #2604 at AX=0000h)
  2259. SeeAlso: AX=000Ah,AX=0082h,AX=00A4h,AX=00B1h
  2260. --------V-6200A9-----------------------------
  2261. INT 62 u - FGDRIVER v4.02 - "FG_SETCLIP" - SET CLIPPING REGION
  2262.     AX = 00A9h
  2263.     BX = left edge of clipping region
  2264.     CX = right edge of clipping region
  2265.     DX = top edge of clipping region
  2266.     SI = bottom edge of clipping region
  2267. Note:    the FGDRIVER functions are rearranged with each major release, but
  2268.       their parameters do not change (see #2604 at AX=0000h)
  2269. SeeAlso: AX=0010h,AX=001Fh,AX=0034h,AX=003Eh,AX=00A1h,AX=00C5h
  2270. --------V-6200AA-----------------------------
  2271. INT 62 u - FGDRIVER v4.02 - "FG_SETCOLOR" - SET CURRENT COLOR
  2272.     AX = 00AAh
  2273.     BX = new color index (or text attribute in text modes)
  2274. Note:    the FGDRIVER functions are rearranged with each major release, but
  2275.       their parameters do not change (see #2604 at AX=0000h)
  2276. SeeAlso: AX=0018h,AX=0040h,AX=0045h
  2277. --------V-6200AB-----------------------------
  2278. INT 62 u - FGDRIVER v4.02 - "FG_SETDACS" - SET VIDEO DAC CONTENTS
  2279.     AX = 00ABh
  2280.     CX = number of DAC registers to set (0001h to 0100h)
  2281.     DX = starting DAC register number (0000h to 00FFh)
  2282.     ES:BX -> buffer containing DAC red/green/blue triples
  2283. Notes:    the FGDRIVER functions are rearranged with each major release, but
  2284.       their parameters do not change (see #2604 at AX=0000h)
  2285.     The register number wraps back to zero after reaching FFh
  2286.     This call has no effect in text modes or graphics modes below 11h
  2287. SeeAlso: AX=0041h,AX=004Eh,AX=0086h,INT 10/AX=1012h
  2288. --------V-6200AC-----------------------------
  2289. INT 62 u - FGDRIVER v4.02 - "FG_SETENTRY" - SET TYPE AND ADDRESS OF VIDEO PAGE
  2290.     AX = 00ACh
  2291.     BX = page number (00h-3Fh)
  2292.     CX = page address
  2293.     DX = page type (see #2614 at AX=0042h)
  2294. Note:    the FGDRIVER functions are rearranged with each major release, but
  2295.       their parameters do not change (see #2604 at AX=0000h)
  2296. SeeAlso: AX=0038h,AX=0042h,AX=00B0h
  2297. --------V-6200AD-----------------------------
  2298. INT 62 u - FGDRIVER v4.02 - "FG_SETFUNC" - SET LOGICAL OPERATION FOR VIDEO OPS
  2299.     AX = 00ADh
  2300.     BX = operation
  2301.         0000h replacement
  2302.         0001h AND
  2303.         0002h OR
  2304.         0003h XOR
  2305. Notes:    the FGDRIVER functions are rearranged with each major release, but
  2306.       their parameters do not change (see #2604 at AX=0000h)
  2307.     This function is only available in native EGA/VGA graphics modes
  2308.       (0Dh to 12h)
  2309. SeeAlso: AX=001Eh,AX=008Fh
  2310. --------V-6200AE-----------------------------
  2311. INT 62 u - FGDRIVER v4.02 - "FG_SETHPAGE" - SET HIDDEN VIDEO PAGE
  2312.     AX = 00AEh
  2313.     BX = new hidden page (0000h to 003Fh)
  2314. Notes:    the FGDRIVER functions are rearranged with each major release, but
  2315.       their parameters do not change (see #2604 at AX=0000h)
  2316.     The specified page must be a physical page or a virtual page
  2317. SeeAlso: AX=0043h,AX=00B2h,AX=00B6h
  2318. --------V-6200AF-----------------------------
  2319. INT 62 u - FGDRIVER v4.02 - "FG_SETLINES" - SET TEXT ROWS ON SCREEN
  2320.     AX = 00AFh
  2321.     BX = new screen size (25, 43, 50)
  2322. Note:    the FGDRIVER functions are rearranged with each major release, but
  2323.       their parameters do not change (see #2604 at AX=0000h)
  2324. SeeAlso: AX=0047h
  2325. --------V-6200B0-----------------------------
  2326. INT 62 u - FGDRIVER v4.02 - "FG_SETMODE" - SELECT VIDEO MODE AND INITIALIZE
  2327.     AX = 00B0h
  2328.     BX = new video mode or FFFFh for current mode (see #2630)
  2329.     ES:DX -> WORD ???
  2330. Notes:    the FGDRIVER functions are rearranged with each major release, but
  2331.       their parameters do not change (see #2604 at AX=0000h)
  2332.     This call resets the active video page to page 0000h, the clipping
  2333.       region to the entire screen, text rows to 25, etc.
  2334. SeeAlso: AX=004Bh,INT 10/AH=00h
  2335.  
  2336. (Table 2630)
  2337. Values for FGDRIVER video mode:
  2338.  00h-07h standard BIOS modes
  2339.  09h    PCjr/Tandy1000 320x200x16
  2340.  0Bh    Hercules graphics 720x348
  2341.  0Ch    Hercules graphics 320x200
  2342.  0Dh-13h standard BIOS modes
  2343.  14h    VGA graphics 320x200x256
  2344.  15h    VGA graphics 320x400x256
  2345.  16h    VGA graphics 320x240x256
  2346.  17h    VGA graphics 320x480x256
  2347.  18h    SVGA graphics 640x400x256
  2348.  19h    SVGA graphics 640x480x256
  2349.  1Ah    SVGA graphics 800x600x256
  2350.  1Bh    SVGA graphics 1024x768x256
  2351.  1Ch    SVGA graphics 800x600x16
  2352.  1Dh    SVGA graphics 1024x768x16
  2353. --------V-6200B1-----------------------------
  2354. INT 62 u - FGDRIVER v4.02 - "FG_SETNUM" - SET STATE OF NUMLOCK KEY
  2355.     AX = 00B1h
  2356.     BX = new state (0000h off, 0001h on)
  2357. Note:    the FGDRIVER functions are rearranged with each major release, but
  2358.       their parameters do not change (see #2604 at AX=0000h)
  2359. SeeAlso: AX=000Ah,AX=0082h,AX=00A4h,AX=00A8h
  2360. --------V-6200B2-----------------------------
  2361. INT 62 u - FGDRIVER v4.02 - "FG_SETPAGE" - SET ACTIVE VIDEO PAGE
  2362.     AX = 00B2h
  2363.     BX = new video page (0000h to 003Fh)
  2364. Notes:    the FGDRIVER functions are rearranged with each major release, but
  2365.       their parameters do not change (see #2604 at AX=0000h)
  2366.     The specified page must be a physical or virtual page
  2367. SeeAlso: AX=0039h,AX=0042h,AX=0043h,AX=0050h,AX=0088h
  2368. --------V-6200B3-----------------------------
  2369. INT 62 u - FGDRIVER v4.02 - "FG_SETRGB" - SET VIDEO DAC REGISTER CONTENTS
  2370.     AX = 00B3h
  2371.     BX = palette or DAC register number
  2372.     CX = red color component
  2373.     DX = green component
  2374.     SI = blue component
  2375. Notes:    the FGDRIVER functions are rearranged with each major release, but
  2376.       their parameters do not change (see #2604 at AX=0000h)
  2377.     The register number may be negative for Tandy, PCjr, and 200-line
  2378.       EGA graphics modes to specify an intense color
  2379.     This call has no effect in text, CGA graphics, and Hercules graphics
  2380.       modes
  2381. SeeAlso: AX=004Eh
  2382. --------V-6200B4-----------------------------
  2383. INT 62 u - FGDRIVER v4.02 - UNUSED
  2384.     AX = 00B4h
  2385. Return: AX = 0000h
  2386. Note:    the FGDRIVER functions are rearranged with each major release, but
  2387.       their parameters do not change (see #2604 at AX=0000h)
  2388. --------V-6200B5-----------------------------
  2389. INT 62 u - FGDRIVER v4.02 - "FG_SETVIEW" - DEFINE VIEWPORT
  2390.     AX = 00B5h
  2391.     ES:BX -> variable record (see #2631)
  2392.     CX = viewport's top edge in screen space
  2393.     DX = viewport's bottom edge in screen space
  2394. Return: nothing
  2395. Note:    the FGDRIVER functions are rearranged with each major release, but
  2396.       their parameters do not change (see #2604)
  2397. SeeAlso: AX=004Fh
  2398.  
  2399. Format of FGDRIVER SETVIEW variable record:
  2400. Offset    Size    Description    (Table 2631)
  2401.  00h    WORD    viewport's left edge in viewport units
  2402.  02h    WORD    viewport's right edge in viewport units
  2403.  04h    WORD    viewport's top edge in viewport units
  2404.  06h    WORD    viewport's bottom edge in viewport units
  2405.  08h    WORD    viewport's left edge in screen space
  2406.  0Ah    WORD    viewport's right edge in screen space
  2407. --------V-6200B6-----------------------------
  2408. INT 62 u - FGDRIVER v4.02 - "FG_SETVPAGE" - SET VISIBLE VIDEO PAGE
  2409.     AX = 00B6h
  2410.     BX = new video page (0000h to 003Fh)
  2411. Notes:    the FGDRIVER functions are rearranged with each major release, but
  2412.       their parameters do not change (see #2604 at AX=0000h)
  2413.     The specified page must be a physical or virtual page
  2414. SeeAlso: AX=0043h,AX=00AEh,AX=00B2h
  2415. --------V-6200B7-----------------------------
  2416. INT 62 u - FGDRIVER v4.02 - "FG_SHEAR" - SHEAR UNPACKED BITMAP
  2417.     AX = 00B7h
  2418.     ES:BX -> variable pointer record (see #2632)
  2419.     CX = bitmap width (0 < width <= 1024)
  2420.     DX = bitmap height (0 < height <= 1024)
  2421.     SI = size of resulting image (width for horiz. shear, height for vert.)
  2422.     DI = shear type
  2423.         0000h horizontal shear to left
  2424.         0001h horizontal shear to right
  2425.         0002h vertical shear to left (left edge stretched up)
  2426.         0003h vertical shear to right (right edge stretched up)
  2427. Return: nothing
  2428. Note:    the FGDRIVER functions are rearranged with each major release, but
  2429.       their parameters do not change (see #2604)
  2430. SeeAlso: AX=00A3h
  2431.  
  2432. Format of FGDRIVER SHEAR variable pointer record:
  2433. Offset    Size    Description    (Table 2632)
  2434.  00h    WORD    segment of source bitmap
  2435.  02h    WORD    offset of source bitmap
  2436.  04h    WORD    segment of buffer for resulting bitmap
  2437.  06h    WORD    offset of buffer for resulting bitmap
  2438. --------V-6200B8-----------------------------
  2439. INT 62 u - FGDRIVER v4.02 - "FG_SHOWFLIC" - DISPLAY IMAGE FROM FLI/FLC FILE
  2440.     AX = 00B8h
  2441.     ES:BX -> ASCIZ filename for FLI/FLC file
  2442.     CX = number of times to display image file (0000h = continuously)
  2443.     DX = control flags (see #2609 at AX=0031h)
  2444. Return: AX = status
  2445.         0000h successful
  2446.         0001h file not found
  2447.         0002h not a valid FLI/FLC file
  2448. Notes:    the FGDRIVER functions are rearranged with each major release, but
  2449.       their parameters do not change (see #2604)
  2450.     the FLI/FLC display may be stopped by the user by pressing Esc
  2451. SeeAlso: AX=0030h,AX=0031h,AX=00B9h
  2452. --------V-6200B9-----------------------------
  2453. INT 62 u - FGDRIVER v4.02 - "FG_SHOWPCX" - DISPLAY IMAGE FROM PCX FILE
  2454.     AX = 00B9h
  2455.     ES:BX -> ASCIZ filename of PCX image
  2456.     CX = flags (see #2633)
  2457. Return: AX = status
  2458.         0000h success
  2459.         0001h file not found
  2460.         0002h not a PCX file
  2461. Notes:    the FGDRIVER functions are rearranged with each major release, but
  2462.       their parameters do not change (see #2604 at AX=0000h)
  2463.     This function is ignored in text modes and Hercules low-res graphics
  2464. SeeAlso: AX=005Bh,AX=0060h"1.10",AX=006Ch,AX=006Dh,AX=006Eh,AX=00B8h,AX=00BAh
  2465. SeeAlso: AX=00BBh
  2466.  
  2467. Bitfields for FGDRIVER flags:
  2468. Bit(s)    Description    (Table 2633)
  2469.  0    use current palette rather than PCX file's palette
  2470.  1    display image at cursor position instead of position in PCX header
  2471.  2-15    reserved
  2472. --------V-6200BA-----------------------------
  2473. INT 62 u - FGDRIVER v4.02 - "FG_SHOWPPR" - DISPLAY IMAGE FROM PPR FILE
  2474.     AX = 00BAh
  2475.     ES:BX -> ASCIZ filename of packed pixel run image
  2476.     CX = width in pixels (nonzero)
  2477. Return: AX = status
  2478.         0000h successful
  2479.         0001h file not found
  2480. Notes:    the FGDRIVER functions are rearranged with each major release, but
  2481.       their parameters do not change (see #2604 at AX=0000h)
  2482.     The image is displayed with its lower left corner at the current
  2483.       graphics cursor position
  2484.     This function is ignored in text modes and 256-color graphics modes
  2485. SeeAlso: AX=005Bh,AX=006Ch,AX=006Dh,AX=006Eh,AX=00B9h,AX=00BBh
  2486. --------V-6200BB-----------------------------
  2487. INT 62 u - FGDRIVER v4.02 - "FG_SHOWSPR" - DISPLAY IMAGE FROM SPR FILE
  2488.     AX = 00BBh
  2489.     ES:BX -> ASCIZ filename of standard pixel run image
  2490.     CX = width in pixels (nonzero)
  2491. Return: AX = status
  2492.         0000h successful
  2493.         0001h file not found
  2494. Notes:    the FGDRIVER functions are rearranged with each major release, but
  2495.       their parameters do not change (see #2604 at AX=0000h)
  2496.     The image is displayed with its lower left corner at the current
  2497.       graphics cursor position
  2498.     This function is ignored in text modes
  2499. SeeAlso: AX=005Bh,AX=006Ch,AX=006Dh,AX=006Eh,AX=00B9h,AX=00BAh
  2500. --------V-6200BC-----------------------------
  2501. INT 62 u - FGDRIVER v4.02 - "FG_SOUND" - MAKE SOUND FOR SPECIFIED DURATION
  2502.     AX = 00BCh
  2503.     BX = frequency in Hertz (18-32767)
  2504.     CX = duration in clock ticks (0000h or negative for continuous sound)
  2505. Notes:    the FGDRIVER functions are rearranged with each major release, but
  2506.       their parameters do not change (see #2604 at AX=0000h)
  2507.     This call is ignored if asynchronous sound (AX=00A5h,AX=00A8h,
  2508.       AX=00AAh) is already in progress
  2509. SeeAlso: AX=0059h,AX=0080h,AX=00BDh,AX=00C0h,AX=00DBh
  2510. --------V-6200BD-----------------------------
  2511. INT 62 u - FGDRIVER v4.02 - "FG_SOUNDS" - PLAY SOUNDS IN BACKGROUND
  2512.     AX = 00BDh
  2513.     CX = number of times to cycle through sound list
  2514.     ES:BX -> sounds array (see #2634)
  2515. Notes:    the FGDRIVER functions are rearranged with each major release, but
  2516.       their parameters do not change (see #2604 at AX=0000h)
  2517.     This call is ignored if asynchronous sound (AX=00A5h,AX=00A8h,
  2518.       AX=00AAh) is already in progress
  2519. SeeAlso: AX=0059h,AX=0081h,AX=00BCh,AX=00C0h,AX=00DCh
  2520.  
  2521. Format of FGDRIVER sounds array element:
  2522. Offset    Size    Description    (Table 2634)
  2523.  00h    WORD    frequency of sound in Hertz (0000h ends array)
  2524.  02h    WORD    duration of sound in clock ticks
  2525. --------V-6200BE-----------------------------
  2526. INT 62 u - FGDRIVER v4.02 - "FG_SPLIT" - ENABLE/DISABLE SPLIT SCREEN ENVIRONMNT
  2527.     AX = 00BEh
  2528.     BX = beginning row for bottom half of split-screen
  2529. Note:    the FGDRIVER functions are rearranged with each major release, but
  2530.       their parameters do not change (see #2604)
  2531. --------V-6200BF-----------------------------
  2532. INT 62 u - FGDRIVER v4.02 - "FG_STALL" - PAUSE FOR SPECIFIED DURATION
  2533.     AX = 00BFh
  2534.     BX = duration in processor-dependent delay units (see AX=0070h)
  2535. Return: after delay elapses
  2536. Note:    the FGDRIVER functions are rearranged with each major release, but
  2537.       their parameters do not change (see #2604 at AX=0000h)
  2538. SeeAlso: AX=0070h,INT 2F/AX=1224h
  2539. --------V-6200C0-----------------------------
  2540. INT 62 u - FGDRIVER v4.02 - "FG_SUSPEND" - TEMPORARILY STOP ASYNCHRONOUS SOUND
  2541.     AX = 00C0h
  2542. Notes:    the FGDRIVER functions are rearranged with each major release, but
  2543.       their parameters do not change (see #2604 at AX=0000h)
  2544.     This call has no effect if there is no asynchronous sound in progress
  2545.     The program must not exit while sound is suspended
  2546. SeeAlso: AX=0059h,AX=0080h,AX=00BDh,AX=00C0h,AX=00DBh
  2547. --------V-6200C1-----------------------------
  2548. INT 62 u - FGDRIVER v4.02 - "FG_SVGAINIT" - INITIALIZE FASTGRAPH SVGA KERNEL
  2549.     AX = 00C1h
  2550.     BX = method (see #2635)
  2551. Return: AX = status
  2552.         0000h no VESA BIOS or supported SVGA chipset
  2553.         0001h using VESA BIOS
  2554.         0002h-0016h specific chipset being used (same as "method" below)
  2555. Notes:    the FGDRIVER functions are rearranged with each major release, but
  2556.       their parameters do not change (see #2604 at AX=0000h)
  2557.     This function must be called before attempting to set SVGA graphics
  2558.       modes (18h to 1Dh) or using "FG_BESTMODE", "FG_TESTMODE", or
  2559.       "FG_MEMORY"
  2560. SeeAlso: AX=0025h,AX=00C2h,AX=00C3h
  2561.  
  2562. (Table 2635)
  2563. Values for FGDRIVER SVGA method:
  2564.  0000h    autodetect, give chipset-specific code priority over VESA
  2565.  0001h    autodetect, give VESA priority over chipset-specific code
  2566.  0002h    Ahead type "A"
  2567.  0003h    Ahead type "B"
  2568.  0004h    ATI 18800
  2569.  0005h    ATI 18800-1
  2570.  0006h    ATI 28800
  2571.  0007h    Chips & Technologies 82c451/455/456
  2572.  0008h    C&T 82c452
  2573.  0009h    C&T 82c453
  2574.  000Ah    Genoa 6000 series
  2575.  000Bh    Oak OTI-067
  2576.  000Ch    Paradise PVGA1a
  2577.  000Dh    Paradise WD90C00/WD90C10
  2578.  000Eh    Paradise WD90C11/WD90C30/WD90C31
  2579.  000Fh    Trident 8800
  2580.  0010h    Trident 8900
  2581.  0011h    Tseng ET3000
  2582.  0012h    Tseng ET4000
  2583.  0013h    Video7
  2584.  0014h    Cirrus Logic 5400 series
  2585.  0015h    S3
  2586.  0016h    Trident 8900B/8900C/9000
  2587. --------V-6200C2-----------------------------
  2588. INT 62 u - FGDRIVER v4.02 - "FG_SVGASTAT" - GET SVGA CHIPSET INFORMATION
  2589.     AX = 00C2h
  2590. Return: AX = chipset information (see #2636)
  2591. Note:    the FGDRIVER functions are rearranged with each major release, but
  2592.       their parameters do not change (see #2604 at AX=0000h)
  2593. SeeAlso: AX=0025h,AX=00C1h,AX=00C3h
  2594.  
  2595. Bitfields for FGDRIVER chipset information:
  2596. Bit(s)    Description    (Table 2636)
  2597.  0    SVGA kernel initialized
  2598.  1    VESA support enabled
  2599.  2    extended video pages available in modes 13-23
  2600.  3    SVGA chipset has separate read and write banks
  2601.  4-15    reserved (0)
  2602. --------V-6200C3-----------------------------
  2603. INT 62 u - FGDRIVER v4.02 - "FG_SVGAVER" - GET FASTGRAPH SVGA KERNEL VERSION
  2604.     AX = 00C3h
  2605.     ES:BX -> variable pointer record (see #2637)
  2606. Note:    the FGDRIVER functions are rearranged with each major release, but
  2607.       their parameters do not change (see #2604 at AX=0000h)
  2608. SeeAlso: AX=00C1h,AX=00C2h
  2609.  
  2610. Format of FGDRIVER variable pointer record:
  2611. Offset    Size    Description    (Table 2637)
  2612.  00h    WORD    segment of WORD buffer for major version
  2613.  02h    WORD    offset of WORD buffer for major version
  2614.  04h    WORD    segment of WORD buffer for minor version (hundredths)
  2615.  06h    WORD    offset of WORD buffer for minor version
  2616. --------V-6200C4-----------------------------
  2617. INT 62 u - FGDRIVER v4.02 - "FG_TCDEFINE" - DEFINE TRANSPARENCY OF COLOR INDEX
  2618.     AX = 00C4h
  2619.     BX = color index
  2620.     CX = transparency (00h opaque, other transparent)
  2621. Notes:    the FGDRIVER functions are rearranged with each major release, but
  2622.       their parameters do not change (see #2604 at AX=0000h)
  2623.     This function is ignored in text modes
  2624. SeeAlso: AX=00C5h,AX=00C6h
  2625. --------V-6200C5-----------------------------
  2626. INT 62 u - FGDRIVER v4.02 - "FG_TCMASK" - SET TRANSPARENT COLORS
  2627.     AX = 00C5h
  2628.     BX = colors to consider transparent (bit 0 = color 0, etc)
  2629. Notes:    the FGDRIVER functions are rearranged with each major release, but
  2630.       their parameters do not change (see #2604 at AX=0000h)
  2631.     This call is ignored in text modes
  2632.     The specified colors are considered transparent by "FG_TCXFER"
  2633. SeeAlso: AX=00C4h,AX=00C6h
  2634. --------V-6200C6-----------------------------
  2635. INT 62 u - FGDRIVER v4.02 - "FG_TCXFER" - COPY REGION EXCLUDING TRANSPARENT
  2636.     AX = 00C6h
  2637.     CX = source video page
  2638.     DX = destination video page
  2639.     ES:BX -> copy record (see #2638)
  2640. Notes:    the FGDRIVER functions are rearranged with each major release, but
  2641.       their parameters do not change (see #2604 at AX=0000h)
  2642.     Pixels which are in any of the colors defined as transparent with
  2643.       "FG_TCMASK" (see AX=00C5h) are left unchanged in the destination
  2644.       region
  2645.     The source and destination regions must not overlap if they are located
  2646.       on the same page
  2647.     This call is ignored in text modes
  2648. SeeAlso: AX=00C4h,AX=00C5h,AX=00CAh
  2649. --------V-6200C7-----------------------------
  2650. INT 62 u - FGDRIVER v4.02 - "FG_TESTMODE" - CHECK IF VIDEO MODE AVAILABLE
  2651.     AX = 00C7h
  2652.     BX = desired video mode (00h-17h, also 18h-1Dh after "FG_SVGAINIT")
  2653.     CX = required number of video pages (ignore memory size if <= 0)
  2654. Return: AX = status
  2655.         0000h mode not available with requested number of pages
  2656.         0001h mode is available
  2657. Note:    the FGDRIVER functions are rearranged with each major release, but
  2658.       their parameters do not change (see #2604 at AX=0000h)
  2659. SeeAlso: AX=0005h,AX=00B0h
  2660. --------V-6200C8-----------------------------
  2661. INT 62 u - FGDRIVER v4.02 - "FG_TEXT" - DISPLAY STRING OF CHARACTERS
  2662.     AX = 00C8h
  2663.     CX = length of string
  2664.     ES:BX -> string
  2665. Notes:    the FGDRIVER functions are rearranged with each major release, but
  2666.       their parameters do not change (see #2604 at AX=0000h)
  2667.     The string is displayed starting at the text cursor position using the
  2668.       current text attribute (text modes) or color index (graphics modes)
  2669.     The text cursor position is updated after this call
  2670. SeeAlso: AX=000Ch,AX=0096h,AX=00C9h
  2671. --------V-6200C9-----------------------------
  2672. INT 62 u - FGDRIVER v4.02 - "FG_TEXTC" - DISPLAY STRING OF CHARACTERS (CLIPPED)
  2673.     AX = 00C9h
  2674.     CX = length of string
  2675.     ES:BX -> string
  2676. Notes:    the FGDRIVER functions are rearranged with each major release, but
  2677.       their parameters do not change (see #2604)
  2678.     The string is displayed starting at the text cursor position using the
  2679.       current text attribute (text modes) or color index (graphics modes),
  2680.       showing only the portion within the current clipping window
  2681.     The text cursor position is updated after this call
  2682. SeeAlso: AX=00C8h
  2683. --------V-6200CA-----------------------------
  2684. INT 62 u - FGDRIVER v4.02 - "FG_TRANSFER" - COPY REGION
  2685.     AX = 00CAh
  2686.     CX = source video page
  2687.     DX = destination video page
  2688.     ES:BX -> copy record (see #2638)
  2689. Notes:    the FGDRIVER functions are rearranged with each major release, but
  2690.       their parameters do not change (see #2604 at AX=0000h)
  2691.     The source and destination regions must not overlap if they are located
  2692.       on the same page
  2693. SeeAlso: AX=009Eh,AX=00A2h,AX=00A5h,AX=00C6h
  2694.  
  2695. Format of FGDRIVER copy record:
  2696. Offset    Size    Description    (Table 2638)
  2697.  00h    WORD    left edge column of source region
  2698.  02h    WORD    right edge column of source region
  2699.  04h    WORD    top edge row of source region
  2700.  06h    WORD    bottom edge row of source region
  2701.  08h    WORD    left edge of destination
  2702.  0Ah    WORD    bottom edge of destination
  2703. --------V-6200CB-----------------------------
  2704. INT 62 u - FGDRIVER v4.02 - "FG_UNPACK" - EXPAND MODE-SPECIFIC BITMAP
  2705.     AX = 00CBh
  2706.     ES:BX -> variable pointer record (see #2639)
  2707.     CX = size of source bitmap in bytes
  2708. Return: result buffer filled
  2709. Note:    the FGDRIVER functions are rearranged with each major release, but
  2710.       their parameters do not change (see #2604)
  2711. SeeAlso: AX=0083h
  2712.  
  2713. Format of FGDRIVER UNPACK variable pointer record:
  2714. Offset    Size    Description    (Table 2639)
  2715.  00h    WORD    segment of source bitmap
  2716.  02h    WORD    offset of source bitmap
  2717.  04h    WORD    segment of buffer for resulting bitmap
  2718.  06h    WORD    offset of buffer for resulting bitmap
  2719. --------V-6200CC-----------------------------
  2720. INT 62 u - FGDRIVER v4.02 - "FG_VBADDR" - GET ADDRESS OF VIRTUAL BUFFER
  2721.     AX = 00CCh
  2722.     BX = virtual buffer handle (0000h-001Fh)
  2723. Return: DX:AX -> virtual buffer
  2724. Note:    the FGDRIVER functions are rearranged with each major release, but
  2725.       their parameters do not change (see #2604)
  2726. SeeAlso: AX=00CDh,AX=00CEh,AX=00CFh,AX=00D3h
  2727. --------V-6200CD-----------------------------
  2728. INT 62 u - FGDRIVER v4.02 - "FG_VBALLOC" - CREATE VIRTUAL BUFFER
  2729.     AX = 00CDh
  2730.     BX = width of virtual buffer in pixels
  2731.     CX = height in pixels
  2732. Return: AX = handle for virtual buffer, or
  2733.         FFFEh out of memory
  2734.         FFFFh virtual buffer table full
  2735. Note:    the FGDRIVER functions are rearranged with each major release, but
  2736.       their parameters do not change (see #2604)
  2737. SeeAlso: AX=00CCh,AX=00CEh,AX=00D0h,AX=00D1h,AX=00D2h,AX=00D4h
  2738. --------V-6200CE-----------------------------
  2739. INT 62 u - FGDRIVER v4.02 - "FG_VBCLOSE" - CLOSE ACTIVE VIRTUAL BUFFER
  2740.     AX = 00CEh
  2741. Desc:    close the active virtual buffer and direct further graphics to the
  2742.       active video page
  2743. Note:    the FGDRIVER functions are rearranged with each major release, but
  2744.       their parameters do not change (see #2604)
  2745. SeeAlso: AX=00CCh,AX=00D1h,AX=00D4h,AX=00D5h,AX=00D9h
  2746. --------V-6200CF-----------------------------
  2747. INT 62 u - FGDRIVER v4.02 - "FG_VBCOPY" - COPY RECT BETWEEN VIRTUAL BUFFERS
  2748.     AX = 00CFh
  2749.     ES:BX -> variable record (see #2640)
  2750.     CX = handle for source virtual buffer
  2751.     DX = handle for destination virtual buffer
  2752. Notes:    the FGDRIVER functions are rearranged with each major release, but
  2753.       their parameters do not change (see #2604)
  2754.     if the destination buffer is the same as the source buffer, the regions
  2755.       must not overlap
  2756. SeeAlso: AX=00D0h,AX=00D1h,AX=00D4h,AX=00D6h,AX=00D7h
  2757.  
  2758. Format of FGDRIVER VBCOPY variable record:
  2759. Offset    Size    Description    (Table 2640)
  2760.  00h    WORD    source region's left edge
  2761.  02h    WORD    source region's right edge
  2762.  04h    WORD    source region's top edge
  2763.  06h    WORD    source region's bottom edge
  2764.  08h    WORD    X coordinate of destination's upper left corner
  2765.  0Ah    WORD    Y coordinate of destination's upper left corner
  2766. --------V-6200D0-----------------------------
  2767. INT 62 u - FGDRIVER v4.02 - "FG_VBCUT" - COPY RECT FROM VIDEO TO VIRTUAL BUFFER
  2768.     AX = 00D0h
  2769.     BX = source region's left edge
  2770.     CX = source region's right edge
  2771.     DX = source region's top edge
  2772.     SI = source region's bottom edge
  2773.     DI = X coordinate of destination's upper left corner
  2774.     ES = Y coordinate of destination's upper left corner
  2775. Desc:    copy a rectangle from the active video page to the active virtual
  2776.       buffer
  2777. Note:    the FGDRIVER functions are rearranged with each major release, but
  2778.       their parameters do not change (see #2604)
  2779. SeeAlso: AX=00CDh,AX=00CFh,AX=00D4h,AX=00D6h
  2780. --------V-6200D1-----------------------------
  2781. INT 62 u - FGDRIVER v4.02 - "FG_VBDEFINE" - CREATE VIRTUAL BUFFER
  2782.     AX = 00D1h
  2783.     ES:BX -> memory block for virtual buffer 
  2784.     CX = buffer width in pixels
  2785.     DX = buffer height in pixels
  2786. Return: AX = virtual buffer handle
  2787.         FFFFh on error
  2788. Notes:    the FGDRIVER functions are rearranged with each major release, but
  2789.       their parameters do not change (see #2604)
  2790.     the application-provided buffer must be large enough to hold CX*DX
  2791.       bytes
  2792. SeeAlso: AX=00CCh,AX=00CDh,AX=00CEh,AX=00D2h,AX=00D4h,AX=00D5h
  2793. --------V-6200D2-----------------------------
  2794. INT 62 u - FGDRIVER v4.02 - "FG_VBFREE" - RELEASE VIRTUAL BUFFER
  2795.     AX = 00D2h
  2796.     BX = virtual buffer handle
  2797. Notes:    the FGDRIVER functions are rearranged with each major release, but
  2798.       their parameters do not change (see #2604)
  2799.     this function should be used only for buffers created with FG_VBALLOC
  2800. SeeAlso: AX=00CDh,AX=00D4h,AX=00D5h
  2801. --------V-6200D3-----------------------------
  2802. INT 62 u - FGDRIVER v4.02 - "FG_VBHANDLE" - GET ACTIVE VIRTUAL BUFFER'S HANDLE
  2803.     AX = 00D3h
  2804. Return: AX = handle for active virtual buffer
  2805. Note:    the FGDRIVER functions are rearranged with each major release, but
  2806.       their parameters do not change (see #2604)
  2807. SeeAlso: AX=00CCh,AX=00D4h
  2808. --------V-6200D4-----------------------------
  2809. INT 62 u - FGDRIVER v4.02 - "FG_VBINIT" - INITIALIZE VIRTUAL BUFFER ENVIRONMENT
  2810.     AX = 00D4h
  2811. Return: nothing
  2812. Notes:    the FGDRIVER functions are rearranged with each major release, but
  2813.       their parameters do not change (see #2604)
  2814.     this function must be called before any other virtual buffer functions
  2815.       are used
  2816. SeeAlso: AX=00CDh,AX=00D5h
  2817. --------V-6200D5-----------------------------
  2818. INT 62 u - FGDRIVER v4.02 - "FG_VBOPEN" - MAKE VIRTUAL BUFFER ACTIVE
  2819.     AX = 00D5h
  2820.     BX = virtual buffer handle
  2821. Return: AX = status
  2822.         0000h successful
  2823.         FFFEh no buffer defined for specified handle
  2824.         FFFFh invalid buffer handle
  2825. Note:    the FGDRIVER functions are rearranged with each major release, but
  2826.       their parameters do not change (see #2604)
  2827. SeeAlso: AX=00CDh,AX=00CEh,AX=00D1h,AX=00D4h,AX=00D9h
  2828. --------V-6200D6-----------------------------
  2829. INT 62 u - FGDRIVER v4.02 - "FG_VBPASTE" - COPY RECT FROM VIRTUAL BUF TO VIDEO
  2830.     AX = 00D6h
  2831.     BX = source region's left edge
  2832.     CX = source region's right edge
  2833.     DX = source region's top edge
  2834.     SI = source region's bottom edge
  2835.     DI = X coordinate of destination's upper left corner
  2836.     ES = Y coordinate of destination's upper left corner
  2837. Desc:    copy a rectangle from the active virtual buffer to the active video
  2838.       page
  2839. Note:    the FGDRIVER functions are rearranged with each major release, but
  2840.       their parameters do not change (see #2604)
  2841. SeeAlso: AX=00CFh,AX=00D0h,AX=00D4h,AX=00D7h
  2842. --------V-6200D7-----------------------------
  2843. INT 62 u - FGDRIVER v4.02 - "FG_VBTCCOPY" - COPY RECTANGLE BETWEEN VIRTUAL BUFS
  2844.     AX = 00D7h
  2845.     ES:BX -> variable record (see #2641)
  2846.     CX = source virtual buffer's handle 
  2847.     DX = destination virtual buffer's handle
  2848. Desc:    copy rectangle from one virtual buffer to another with transparent
  2849.       colors
  2850. Notes:    the FGDRIVER functions are rearranged with each major release, but
  2851.       their parameters do not change (see #2604)
  2852.     if the destination buffer is the same as the source buffer, the regions
  2853.       must not overlap
  2854. SeeAlso: AX=00CFh,AX=00D0h,AX=00D6h,AX=00D8h
  2855.  
  2856. Format of FGDRIVER VBTCCOPY variable record:
  2857. Offset    Size    Description    (Table 2641)
  2858.  00h    WORD    source region's left edge
  2859.  02h    WORD    source region's right edge
  2860.  04h    WORD    source region's top edge
  2861.  06h    WORD    source region's bottom edge
  2862.  08h    WORD    X coordinate of destination region's upper left corner
  2863.  0Ah    WORD    Y coordinate of destination region's upper left corner
  2864. --------V-6200D8-----------------------------
  2865. INT 62 u - FGDRIVER v4.02 - "FG_VBTCXFER" - COPY RECTANGLE TO ACTIVE VIDEO PAGE
  2866.     AX = 00D8h
  2867.     BX = source region's left edge
  2868.     CX = source region's right edge
  2869.     DX = source region's top edge
  2870.     SI = source region's bottom edge
  2871.     DI = X coordinate of destination's upper left corner
  2872.     ES = Y coordinate of destination's upper left corner
  2873. Desc:    copy a rectangle from the active virtual buffer to the active video
  2874.       page, with transparent colors
  2875. Note:    the FGDRIVER functions are rearranged with each major release, but
  2876.       their parameters do not change (see #2604)
  2877. SeeAlso: AX=00D6h,AX=00D7h
  2878. --------V-6200D9-----------------------------
  2879. INT 62 u - FGDRIVER v4.02 - "FG_VBUNDEF" - RELEASE HANDLE FOR VIRTUAL BUFFER
  2880.     AX = 00D9h
  2881.     BX = virtual buffer handle
  2882. Notes:    the FGDRIVER functions are rearranged with each major release, but
  2883.       their parameters do not change (see #2604)
  2884.     the specified handle must not reference the currently-active virtual
  2885.       buffer
  2886. SeeAlso: AX=00D1h,AX=00D5h
  2887. --------V-6200DA-----------------------------
  2888. INT 62 u - FGDRIVER v4.02 - "FG_VGASTATE" - SAVE/RESTORE VGA CONTROLLER STATE
  2889.     AX = 00DAh
  2890.     BX = direction (0000h save, else restore)
  2891. Notes:    the FGDRIVER functions are rearranged with each major release, but
  2892.       their parameters do not change (see #2604)
  2893.     this function is only meaningful in modes 0Dh and above
  2894. --------V-6200DB-----------------------------
  2895. INT 62 u - FGDRIVER v4.02 - "FG_VOICE" - START SOUND
  2896.     AX = 00DBh
  2897.     BX = channel on TI sound chip
  2898.         1-3 = channels 1-3, 4 = channel 4 with periodic noise,
  2899.         5 = channel 4 with white noise
  2900.     CX = frequency in Hz (18-32767 for channels 1-3; 0=512 Hz, 1=1024 Hz,
  2901.           2=2048 Hz for channels 4 and 5)
  2902.     DX = volume
  2903.     SI = duration in clock ticks (continuous if <= 0)
  2904. Program: FGDRIVER is the external video driver for the shareware
  2905.       Fastgraph/Light by Ted Gruber Software
  2906. Notes:    the FGDRIVER functions are rearranged with each major release, but
  2907.       their parameters do not change (see #2604 at AX=0000h)
  2908.     This function is only available on the PCjr and Tandy 1000 machines
  2909. SeeAlso: AX=0080h,AX=00BCh,AX=00DCh
  2910. --------V-6200DC-----------------------------
  2911. INT 62 u - FGDRIVER v4.02 - "FG_VOICES" - PLAY SOUNDS IN BACKGROUND
  2912.     AX = 00DCh
  2913.     ES:BX -> tone array (see #2642)
  2914.     CX = number of times to repeat tone array
  2915. Notes:    the FGDRIVER functions are rearranged with each major release, but
  2916.       their parameters do not change (see #2604 at AX=0000h)
  2917.     This function is only available on the PCjr and Tandy 1000 machines
  2918. SeeAlso: AX=0059h,AX=0081h,AX=00BDh,AX=00DBh
  2919.  
  2920. Format of FGDRIVER tone array element:
  2921. Offset    Size    Description    (Table 2642)
  2922.  00h    WORD    channel number (0000h terminates array)
  2923.  02h    WORD    frequency
  2924.  04h    WORD    volume
  2925.  06h    WORD    duration in 1/72.8 seconds
  2926. --------V-6200DD-----------------------------
  2927. INT 62 u - FGDRIVER v4.02 - "FG_WAITFOR" - DELAY FOR SPECIFIED DURATION
  2928.     AX = 00DDh
  2929.     BX = duration in clock ticks
  2930. Return: after delay elapses
  2931. Note:    the FGDRIVER functions are rearranged with each major release, but
  2932.       their parameters do not change (see #2604 at AX=0000h)
  2933. SeeAlso: AX=00BFh,INT 1A/AX=FF01h
  2934. --------V-6200DE-----------------------------
  2935. INT 62 u - FGDRIVER v4.02 - "FG_WAITKEY" - FLUSH KEYBOARD BUFFER AND AWAIT KEY
  2936.     AX = 00DEh
  2937. Return: after next key pressed
  2938. Note:    the FGDRIVER functions are rearranged with each major release, but
  2939.       their parameters do not change (see #2604 at AX=0000h)
  2940. SeeAlso: AX=000Ah,AX=0046h,AX=0063h,AX=0069h,INT 16/AH=00h
  2941. --------V-6200DF-----------------------------
  2942. INT 62 u - FGDRIVER v4.02 - "FG_WAITVR" - ENABLE/DISABLE VERTICAL RETRACE WAIT
  2943.     AX = 00DFh
  2944.     BX = new state (0000h disabled, 0001h enabled)
  2945. Note:    the FGDRIVER functions are rearranged with each major release, but
  2946.       their parameters do not change (see #2604 at AX=0000h)
  2947. --------V-6200E0-----------------------------
  2948. INT 62 u - FGDRIVER v4.02 - "FG_WHERE" - GET CURRENT CURSOR POSITION
  2949.     AX = 00E0h
  2950.     ES:BX -> variable pointers (see #2643)
  2951. Return: indicated variables filled with cursor row and column for active
  2952.       display
  2953. Note:    the FGDRIVER functions are rearranged with each major release, but
  2954.       their parameters do not change (see #2604 at AX=0000h)
  2955. SeeAlso: AX=0054h,AX=0058h,AX=006Bh,AX=007Eh
  2956.  
  2957. Format of FGDRIVER variable pointers:
  2958. Offset    Size    Description    (Table 2643)
  2959.  00h    WORD    segment of WORD buffer for cursor row
  2960.  02h    WORD    offset of WORD buffer for cursor row
  2961.  04h    WORD    segment WORD buffer for cursor column
  2962.  06h    WORD    offset WORD buffer for cursor column
  2963. --------V-6200E1-----------------------------
  2964. INT 62 u - FGDRIVER v4.02 - "FG_XALPHA" - CONVERT SCREEN COLUMN TO CHAR COLUMN
  2965.     AX = 00E1h
  2966.     BX = screen space column
  2967. Return: AX = character space column containing specified coordinate
  2968. Note:    the FGDRIVER functions are rearranged with each major release, but
  2969.       their parameters do not change (see #2604 at AX=0000h)
  2970. SeeAlso: AX=00E2h,AX=00E4h
  2971. --------V-6200E2-----------------------------
  2972. INT 62 u - FGDRIVER v4.02 - "FG_XCONVERT" - CONVERT CHAR COLUMN TO SCREEN COL
  2973.     AX = 00E2h
  2974.     BX = character space column
  2975. Return: AX = screen space column of leftmost pixel in specified character col
  2976. Note:    the FGDRIVER functions are rearranged with each major release, but
  2977.       their parameters do not change (see #2604 at AX=0000h)
  2978. SeeAlso: AX=00E2h,AX=00E5h
  2979. --------V-6200E3-----------------------------
  2980. INT 62 u - FGDRIVER v4.02 - "FG_XVIEW" - CONVERT VIEWPORT COORDINATE
  2981.     AX = 00E3h
  2982.     BX = horizontal viewport coordinate
  2983. Return: AX = screen space X coordinate corresponding to supplied coordinate
  2984. Notes:    the FGDRIVER functions are rearranged with each major release, but
  2985.       their parameters do not change (see #2604 at AX=0000h)
  2986.     if no viewport has been defined, the returned coordinate will be the
  2987.       same as the viewport coordinate
  2988. SeeAlso: AX=00E2h,AX=00E6h
  2989. --------V-6200E4-----------------------------
  2990. INT 62 u - FGDRIVER v4.02 - "FG_YALPHA" - CONVERT SCREEN ROW TO CHARACTER ROW
  2991.     AX = 00E4h
  2992.     BX = screen space row
  2993. Return: AX = character space row containing specified coordinate
  2994. Note:    the FGDRIVER functions are rearranged with each major release, but
  2995.       their parameters do not change (see #2604 at AX=0000h)
  2996. SeeAlso: AX=00E1h,AX=00E5h
  2997. --------V-6200E5-----------------------------
  2998. INT 62 u - FGDRIVER v4.02 - "FG_YCONVERT" - CONVERT CHARACTER ROW TO SCREEN ROW
  2999.     AX = 00E5h
  3000.     BX = character space row
  3001. Return: AX = screen space row of topmost pixel in specified character row
  3002. Note:    the FGDRIVER functions are rearranged with each major release, but
  3003.       their parameters do not change (see #2604 at AX=0000h)
  3004. SeeAlso: AX=00E2h,AX=00E4h,AX=00E6h
  3005. --------V-6200E6-----------------------------
  3006. INT 62 u - FGDRIVER v4.02 - "FG_YVIEW" - TRANSLATE VERTICAL VIEWPORT COORDINATE
  3007.     AX = 00E6h
  3008.     BX = viewport Y coordinate
  3009. Return: AX = screen space row for viewport coordinate
  3010. Program: FGDRIVER is the external video driver for the shareware
  3011.       Fastgraph/Light by Ted Gruber Software
  3012. Notes:    the FGDRIVER functions are rearranged with each major release, but
  3013.       their parameters do not change (see #2604 at AX=0000h)
  3014.     if no viewport has been defined, the returned coordinate will be the
  3015.       same as the viewport coordinate
  3016. SeeAlso: AX=00E3h,AX=00E5h
  3017. --------T-6201-------------------------------
  3018. INT 62 - Cswitch - GIVE UP REST OF TIME-SLICE
  3019.     AH = 01h
  3020. Program: Cswitch is a set of multitasking functions by Herb Rose
  3021. SeeAlso: AH=05h"Cswitch",AH=06h"Cswitch",INT 15/AX=1000h,INT 2F/AX=1680h
  3022. --------N-6201-------------------------------
  3023. INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - NOP for ETHDEV.ODI
  3024.     AH = 01h
  3025. Return: CF clear if successful
  3026.     CF set on error
  3027.         AL = error code
  3028. Range:    INT 4C to INT FB, selected by configuration
  3029. SeeAlso: AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63"BW-TCP",INT 64"BW-NFS"
  3030. --------T-6202-------------------------------
  3031. INT 62 - Cswitch - WAIT FOR SEMAPHORE
  3032.     AH = 02h
  3033.     DX = semaphore number (0-63)
  3034. Return: AX = FFFFh bad semaphore number
  3035.          else  success
  3036. SeeAlso: AH=03h"Cswitch",AH=04h"Cswitch"
  3037. --------N-6202-------------------------------
  3038. INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - INITIALIZE
  3039.     AH = 02h
  3040. Return: CF clear if successful
  3041.     CF set on error
  3042.         AL = error code
  3043. SeeAlso: AH=00h"ETHDEV",AH=03h"ETHDEV",AH=FEh,INT 21/AH=3Fh"BW-TCP"
  3044. SeeAlso: INT 63"BW-TCP",INT 64"BW-NFS"
  3045. --------T-6203-------------------------------
  3046. INT 62 - Cswitch - CHECK SEMAPHORE
  3047.     AH = 03h
  3048.     DX = semaphore number (0-63)
  3049. Return: AX = status
  3050.         FFFFh not owned
  3051.         else  owned
  3052. SeeAlso: AH=02h,AH=04h
  3053. --------N-6203-------------------------------
  3054. INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - GET REAL IP ADDRESS
  3055.     AH = 03h
  3056.     DS:SI -> DWORD buffer for IP address
  3057. Return: CF clear if successful
  3058.     CF set on error
  3059.         AL = error code
  3060. Range:    INT 4C to INT FB, selected by configuration
  3061. Note:    the Beame&Whiteside TCP/IP protocol stack uses two consecutive
  3062.       interrupts (62h and 63h by default); the BW-NFS client uses a third
  3063.       consecutive interrupt (64h by default) if it is loaded
  3064. SeeAlso: AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63"BW-TCP",INT 64"BW-NFS"
  3065. --------T-6204-------------------------------
  3066. INT 62 - Cswitch - TRIGGER SEMAPHORE
  3067.     AH = 04h
  3068.     DX = semaphore number (0-63)
  3069. Return: AX = status
  3070.         FFFFh bad semaphore number
  3071.         else  success
  3072. SeeAlso: AH=02h"Cswitch",AH=03h"Cswitch"
  3073. --------N-6204-------------------------------
  3074. INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - SET ???
  3075.     AH = 04h
  3076.     BX = ???
  3077.     ES:SI -> FAR routine for ???
  3078. Return: CF clear if successful
  3079.     CF set on error
  3080.         AL = error code
  3081. SeeAlso: AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63"BW-TCP",INT 64"BW-NFS"
  3082. --------T-6205-------------------------------
  3083. INT 62 - Cswitch - SLEEP
  3084.     AH = 05h
  3085.     BX = seconds to sleep
  3086. SeeAlso: AH=01h"Cswitch",AH=06h"Cswitch",AH=08h"Cswitch"
  3087. --------N-6205-------------------------------
  3088. INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - ???
  3089.     AH = 05h
  3090.     ???
  3091. Return: CF clear if successful
  3092.     CF set on error
  3093.         AL = error code
  3094. SeeAlso: AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63"BW-TCP",INT 64"BW-NFS"
  3095. --------T-6206-------------------------------
  3096. INT 62 - Cswitch - SUSPEND
  3097.     AH = 06h
  3098. SeeAlso: AH=05h"Cswitch",AH=08h"Cswitch"
  3099. --------N-6206-------------------------------
  3100. INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - ???
  3101.     AH = 06h
  3102.     ???
  3103. Return: CF clear if successful
  3104.     CF set on error
  3105.         AL = error code
  3106. Range:    INT 4C to INT FB, selected by configuration
  3107. Note:    the Beame&Whiteside TCP/IP protocol stack uses two consecutive
  3108.       interrupts (62h and 63h by default); the BW-NFS client uses a third
  3109.       consecutive interrupt (64h by default) if it is loaded
  3110. SeeAlso: AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63"BW-TCP",INT 64"BW-NFS"
  3111. --------T-6207-------------------------------
  3112. INT 62 - Cswitch - SPAWN
  3113.     AH = 07h
  3114.     ES:BX -> function address to start executing at
  3115.     CX = priority (1-10)
  3116. Return: AX = result/status
  3117.         FFFDh  no free memory control blocks
  3118.         FFFEh  no free task control blocks
  3119.         FFFFh  not enough memory to create new task stack
  3120.         >0       the tcb number of the new task, indicating no error
  3121. SeeAlso: AH=0Fh"Cswitch",AH=10h"Cswitch"
  3122. --------N-6207-------------------------------
  3123. INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - ???
  3124.     AH = 07h
  3125.     DS:SI -> ???
  3126. Return: CF clear if successful
  3127.     CF set on error
  3128.         AL = error code
  3129. SeeAlso: AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63"BW-TCP",INT 64"BW-NFS"
  3130. --------T-6208-------------------------------
  3131. INT 62 - Cswitch - WAKE UP TASK
  3132.     AH = 08h
  3133.     BX = tcb identifier
  3134. SeeAlso: AH=05h,AH=06h
  3135. --------N-6208-------------------------------
  3136. INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - ???
  3137.     AH = 08h
  3138.     CX = ???
  3139.     ES:SI -> ??? buffer (see #2644)
  3140. Return: CF clear if successful
  3141.     CF set on error
  3142.         AL = error code
  3143. Range:    INT 4C to INT FB, selected by configuration
  3144. SeeAlso: AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63"BW-TCP",INT 64"BW-NFS"
  3145.  
  3146. Format of BW-TCP ??? buffer:
  3147. Offset    Size    Description    (Table 2644)
  3148.  00h  6 BYTEs    hardware address???
  3149.  06h  6 BYTEs    ???
  3150.  0Ch    WORD    ???
  3151.  0Eh    WORD    ???
  3152. ----------6208--CXFFFE-----------------------
  3153. INT 62 - MS SQL Server/Sybase DBLIBRARY interface - UNINSTALL/GET PSP ADDR
  3154.     AH = 08h
  3155.     CX = FFFEh
  3156.     DX = FFFFh
  3157. Return: AX = PSP address of resident DBLIBRARY
  3158. Note:    this call does not free the memory allocated to the TSR; the calling
  3159.       code must do the deallocation.
  3160. SeeAlso: INT 62"DBLIBRARY"
  3161. --------T-6209-------------------------------
  3162. INT 62 - Cswitch - SET PRIORITY
  3163.     AH = 09h
  3164.     BX = new base priority (1-10)
  3165. Note:    the lower the priority is numerically, the more often the task will run
  3166. --------N-6209-------------------------------
  3167. INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - HOOK TIMER INTERRUPT
  3168.     AH = 09h
  3169. Return: CF clear if successful
  3170.         AX = handler ID
  3171.     CF set on error
  3172.         AL = error code
  3173. Range:    INT 4C to INT FB, selected by configuration
  3174. Note:    the Beame&Whiteside TCP/IP protocol stack uses two consecutive
  3175.       interrupts (62h and 63h by default); the BW-NFS client uses a third
  3176.       consecutive interrupt (64h by default) if it is loaded
  3177. SeeAlso: AH=0Ah"ETHDEV",AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63"BW-TCP"
  3178. SeeAlso: INT 64"BW-NFS"
  3179. --------T-620A-------------------------------
  3180. INT 62 - Cswitch - TEST MESSAGE QUEUE
  3181.     AH = 0Ah
  3182.     DX = queue number (0-63)
  3183. Return: AX = result/message size
  3184.         0000h nothing on queue
  3185.         FFFFh bad queue number
  3186.         else  number of bytes in first message in queue
  3187. SeeAlso: AH=0Bh"Cswitch",AH=0Ch"Cswitch"
  3188. --------N-620A-------------------------------
  3189. INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - UNHOOK TIMER INTERRUPT
  3190.     AH = 0Ah
  3191.     DX = handler ID
  3192. Return: CF clear if successful
  3193.     CF set on error
  3194.         AL = error code
  3195. SeeAlso: AH=09h"ETHDEV",AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63"BW-TCP"
  3196. SeeAlso: INT 64"BW-NFS"
  3197. --------T-620B-------------------------------
  3198. INT 62 - Cswitch - SEND MESSAGE
  3199.     AH = 0Bh
  3200.     CX = number of bytes to write
  3201.     DS:SI -> buffer
  3202.     DX = queue number (0-63)
  3203. Return: AX = result/message size
  3204.         0000h no message was on queue
  3205.         FFFEh triggered by something arriving, redo the call
  3206.         FFFFh bad queue number
  3207.         else  number of bytes in message
  3208. SeeAlso: AH=0Ah"Cswitch",AH=0Ch"Cswitch"
  3209. --------N-620B-------------------------------
  3210. INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - ADD ???
  3211.     AH = 0Bh
  3212.     AL = ???
  3213.     DX = ???
  3214.     BP = ???
  3215.     ES:SI -> ???
  3216. Return: CF clear if successful
  3217.     CF set on error
  3218.         AL = error code
  3219. SeeAlso: AH=0Ch"ETHDEV",AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63"BW-TCP"
  3220. SeeAlso: INT 64"BW-NFS"
  3221. --------T-620C-------------------------------
  3222. INT 62 - Cswitch - READ MESSAGE
  3223.     AH = 0Ch
  3224.     CX = number of bytes to read
  3225.     DS:SI -> buffer
  3226.     DX = queue number (0-63)
  3227. Return: AX = status
  3228.         FFFFh bad queue number
  3229.         else  number of bytes transferred
  3230. SeeAlso: AH=0Ah,AH=0Bh
  3231. --------N-620C-------------------------------
  3232. INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - REMOVE ???
  3233.     AH = 0Ch
  3234.     DX = ???
  3235.     BP = ???
  3236. Return: CF clear if successful
  3237.     CF set on error
  3238.         AL = error code
  3239. Range:    INT 4C to INT FB, selected by configuration
  3240. Note:    the Beame&Whiteside TCP/IP protocol stack uses two consecutive
  3241.       interrupts (62h and 63h by default); the BW-NFS client uses a third
  3242.       consecutive interrupt (64h by default) if it is loaded
  3243. SeeAlso: AH=0Bh"ETHDEV",AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63"BW-TCP"
  3244. SeeAlso: INT 64"BW-NFS"
  3245. --------T-620D-------------------------------
  3246. INT 62 - Cswitch - DON'T ALLOW TASK TO BE SWAPPED OUT
  3247.     AH = 0Dh
  3248. SeeAlso: AH=0Eh"Cswitch"
  3249. --------N-620D-------------------------------
  3250. INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - NOP for ETHDEV.ODI
  3251.     AH = 0Dh
  3252. Return: CF clear if successful
  3253.     CF set on error
  3254.         AL = error code
  3255. SeeAlso: AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63"BW-TCP",INT 64"BW-NFS"
  3256. --------T-620E-------------------------------
  3257. INT 62 - Cswitch - ALLOW TASK TO BE SWAPPED OUT
  3258.     AH = 0Eh
  3259. SeeAlso: AH=0Dh"Cswitch"
  3260. --------N-620E-------------------------------
  3261. INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - BEGIN CRITICAL SECTION
  3262.     AH = 0Eh
  3263. Return: CF clear if successful
  3264.     CF set on error
  3265.         AL = error code
  3266. SeeAlso: AH=0Fh"ETHDEV",AH=10h"ETHDEV",AH=FEh,INT 21/AH=3Fh"BW-TCP"
  3267. SeeAlso: INT 63"BW-TCP",INT 64"BW-NFS"
  3268. --------T-620F-------------------------------
  3269. INT 62 - Cswitch - LOAD AND RUN PROGRAM FROM DISK
  3270.     AH = 0Fh
  3271.     ES:BX -> command line
  3272.     CX = priority (1-10)
  3273.     DX = background flag (nonzero allows loading to EMS)
  3274. Return: AX = status
  3275.         0000h task loader queue is full
  3276.         0001h  no error
  3277. SeeAlso: AH=07h"Cswitch",AH=10h"Cswitch",AH=13h"Cswitch"
  3278. --------N-620F-------------------------------
  3279. INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - END CRITICAL SECTION
  3280.     AH = 0Fh
  3281. Return: CF clear if successful
  3282.     CF set on error
  3283.         AL = error code
  3284. Range:    INT 4C to INT FB, selected by configuration
  3285. Note:    the Beame&Whiteside TCP/IP protocol stack uses two consecutive
  3286.       interrupts (62h and 63h by default); the BW-NFS client uses a third
  3287.       consecutive interrupt (64h by default) if it is loaded
  3288. SeeAlso: AH=0Eh"ETHDEV",AH=10h"ETHDEV",AH=FEh,INT 21/AH=3Fh"BW-TCP"
  3289. SeeAlso: INT 63"BW-TCP",INT 64"BW-NFS"
  3290. --------T-6210-------------------------------
  3291. INT 62 - Cswitch - TERMINATE SPAWNED PROGRAM
  3292.     AH = 10h
  3293. SeeAlso: AH=07h"Cswitch",AH=0Fh"Cswitch"
  3294. --------N-6210-------------------------------
  3295. INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - QUERY CRITICAL SECTION
  3296.     AH = 10h
  3297. Return: CF clear if no critical section active
  3298.     CF set if in critical section
  3299. SeeAlso: AH=0Eh"ETHDEV",AH=0Fh"ETHDEV",AH=FEh,INT 21/AH=3Fh"BW-TCP"
  3300. SeeAlso: INT 63"BW-TCP",INT 64"BW-NFS"
  3301. --------T-6211-------------------------------
  3302. INT 62 - Cswitch - GET TCB INFORMATION
  3303.     AH = 11h
  3304.     ES:BX -> a pointer which will be set to the tcb address
  3305. Return: AX = tcb indentifier
  3306. SeeAlso: AH=12h
  3307. --------N-6211-------------------------------
  3308. INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - SET ???
  3309.     AH = 11h
  3310.     ES:SI -> ???
  3311. Return: CF clear
  3312. SeeAlso: AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63"BW-TCP",INT 64"BW-NFS"
  3313. --------T-6212-------------------------------
  3314. INT 62 - Cswitch - GET TCB ADDRESS
  3315.     AH = 12h
  3316.     ES:BX -> a pointer which will be set to the tcb table address
  3317. Return: AX = tcb indentifier
  3318. SeeAlso: AH=11h"Cswitch"
  3319. --------N-6212-------------------------------
  3320. INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - GET SOCKET NUMBER???
  3321.     AH = 12h
  3322. Return: CF clear if successful
  3323.         AX = socket number??? (memory variable incremented after reading)
  3324.     CF set on error
  3325.         AL = error code
  3326. Range:    INT 4C to INT FB, selected by configuration
  3327. Note:    the Beame&Whiteside TCP/IP protocol stack uses two consecutive
  3328.       interrupts (62h and 63h by default); the BW-NFS client uses a third
  3329.       consecutive interrupt (64h by default) if it is loaded
  3330. SeeAlso: AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63"BW-TCP",INT 64"BW-NFS"
  3331. --------T-6213-------------------------------
  3332. INT 62 - Cswitch - CHECK STATUS OF PREVIOUS LOAD_TASK
  3333.     AH = 13h
  3334. Return: AX = result
  3335.         FFFCh no Memory Control Blocks available
  3336.         FFFDh no TCBs available
  3337.         FFFEh insufficient memory
  3338.         FFFFh cannot open file
  3339.         0000h load in progress (not done yet)
  3340.         else  tcb indentifier
  3341. SeeAlso: AH=0Fh
  3342. --------N-6213-------------------------------
  3343. INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - ???
  3344.     AH = 13h
  3345.     CX = ???
  3346. Return: CF clear if successful
  3347.         AL = 00h
  3348.     CF set on error
  3349.         AL = error code
  3350. SeeAlso: AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63"BW-TCP",INT 64"BW-NFS"
  3351. --------N-6214-------------------------------
  3352. INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - ???
  3353.     AH = 14h
  3354.     ES:SI -> ???
  3355. Return: CF clear if successful
  3356.         AL = 00h
  3357.     CF set on error
  3358.         AL = error code
  3359. SeeAlso: AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63"BW-TCP",INT 64"BW-NFS"
  3360. --------N-6215-------------------------------
  3361. INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - GET ???
  3362.     AH = 15h
  3363. Return: CF clear if successful
  3364.         AX = ??? (destroyed???)
  3365.     CF set on error
  3366.         AL = error code
  3367. Range:    INT 4C to INT FB, selected by configuration
  3368. Notes:    call this function after reading the "ETHDEV27" device
  3369.     the Beame&Whiteside TCP/IP protocol stack uses two consecutive
  3370.       interrupts (62h and 63h by default); the BW-NFS client uses a third
  3371.       consecutive interrupt (64h by default) if it is loaded
  3372. SeeAlso: AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63"BW-TCP",INT 64"BW-NFS"
  3373. --------N-6216-------------------------------
  3374. INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - ???
  3375.     AH = 16h
  3376.     ???
  3377. Return: CF clear if successful
  3378.     CF set on error
  3379.         AL = error code
  3380. SeeAlso: AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63"BW-TCP",INT 64"BW-NFS"
  3381. --------N-6217-------------------------------
  3382. INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - ???
  3383.     AH = 17h
  3384.     DX = segment of ???
  3385. Return: CF clear
  3386. SeeAlso: AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63"BW-TCP",INT 64"BW-NFS"
  3387. --------N-6218-------------------------------
  3388. INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - ALLOCATE AND MAP EMS FOR DRIVER
  3389.     AH = 18h
  3390. Return: CF clear if successful
  3391.     CF set on error
  3392.         AL = error code
  3393. Range:    INT 4C to INT FB, selected by configuration
  3394. Notes:    calls function 17h after EMS allocated and mapped
  3395.     the Beame&Whiteside TCP/IP protocol stack uses two consecutive
  3396.       interrupts (62h and 63h by default); the BW-NFS client uses a third
  3397.       consecutive interrupt (64h by default) if it is loaded
  3398. SeeAlso: AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63"BW-TCP",INT 64"BW-NFS"
  3399. --------R-6247-------------------------------
  3400. INT 62 - PC Tools v7 COMMUTE - ???
  3401.     AH = 47h
  3402.     AL = subfunction (00h-31h)
  3403.     ???
  3404.     CF set
  3405. Return: ???
  3406. Program: COMMUTE is a remote-control program bundled with Central Point
  3407.       Software's PC Tools
  3408. --------R-6248-------------------------------
  3409. INT 62 - PC Tools v7 COMMUTE - ???
  3410.     AH = 48h
  3411.     AL = ???
  3412.     ???
  3413.     CF set
  3414. Return: ???
  3415. --------R-6249-------------------------------
  3416. INT 62 - PC Tools v7 COMMUTE - ???
  3417.     AH = 49h
  3418.     ???
  3419.     CF set
  3420. Return: ???
  3421. Note:    may be the same as AH=4Ch
  3422. --------R-624A-------------------------------
  3423. INT 62 - PC Tools v7 COMMUTE - ???
  3424.     AH = 4Ah
  3425.     AL = subfunction (00h-46h)
  3426.     ???
  3427.     CF set
  3428. Return: ???
  3429. --------R-624B--BX1234-----------------------
  3430. INT 62 - PC Tools v7 COMMUTE - ???
  3431.     AH = 4Bh
  3432.     BX = 1234h
  3433.     CX = 1234h
  3434.     ES = ???
  3435.     CF set
  3436. Return: ???
  3437. Program: COMMUTE is a remote-control program bundled with Central Point
  3438.       Software's PC Tools
  3439. --------R-624C-------------------------------
  3440. INT 62 - PC Tools v7 COMMUTE - ???
  3441.     AH = 4Ch
  3442.     BL = subfunction
  3443.         00h ???
  3444.         02h ???
  3445. Return: CF clear if successful
  3446.     CF set on error
  3447. --------R-626262-----------------------------
  3448. INT 62 - PC Tools v7 COMMUTE - INSTALLATION CHECK
  3449.     AX = 6262h
  3450.     CF set
  3451. Return: AX = 0000h
  3452.     BX = segment of resident code's PSP
  3453. Program: COMMUTE is a remote-control program bundled with Central Point
  3454.       Software's PC Tools
  3455. --------s-62C0-------------------------------
  3456. INT 62 U - GWBTSR - API
  3457.     AH = C0h
  3458.     AL = function
  3459.         00h installation check
  3460.         Return: AX = 00FFh if installed
  3461.         01h ???
  3462. Program: GWBTSR is a huge (48K) resident mixer controller for the Gateway 2000
  3463.       sound card (OEM version of Aztech Sound Galaxy)
  3464. Index:    installation check;GWBTSR
  3465. --------N-62FE-------------------------------
  3466. INT 62 - BW-TCP - ETHDRV.SYS - MAP EMS PAGE FRAME
  3467.     AH = FEh
  3468.     AL = direction
  3469.         00h map in driver's memory block
  3470.         01h map out driver's memory block
  3471. Return: CF clear if successful
  3472.     CF set on error
  3473.         AL = error code
  3474. Range:    INT 4C to INT FB, selected by configuration
  3475. Notes:    this function is supported by at least the SLIP and ODI versions of
  3476.       ETHDEV.SYS
  3477.     the Beame&Whiteside TCP/IP protocol stack uses two consecutive
  3478.       interrupts (62h and 63h by default); the BW-NFS client uses a third
  3479.       consecutive interrupt (64h by default) if it is loaded
  3480. SeeAlso: INT 21/AH=3Fh"BW-TCP",INT 62/AH=00h"ETHDEV",INT 62/AH=18h"ETHDEV"
  3481. SeeAlso: INT 63"BW-TCP",INT 64/AH=FEh
  3482. --------*-63---------------------------------
  3483. INT 63 - reserved for user interrupt
  3484. --------d-63---------------------------------
  3485. INT 63 - Adaptec and OMTI controllers - DRIVE 0 DATA
  3486. Desc:    this vector stores the last four bytes of the parameter table for
  3487.       hard disk 0
  3488. SeeAlso: INT 60"Adaptec",INT 61"Adaptec",INT 62"Adaptec",INT 64"Adaptec"
  3489. --------b-63---------------------------------
  3490. INT 63 - TI Professional PC - OPTION ROM DATA AREA POINTER (NOT A VECTOR!)
  3491. Desc:    the low word of this vector contains the segment of the RAM data area
  3492.       to be used by the expansion ROM at F400h:4000h, and the high word
  3493.       contains the length of the data area; this segment and size are
  3494.       both set to 0000h if no ROM is installed at F400h:4000h
  3495. SeeAlso: INT 60"TI Professional PC",INT 62"TI Professional"
  3496. SeeAlso: INT 64"TI Professional PC"
  3497. ----------63---------------------------------
  3498. INT 63 - Oracle SQL Protected Mode Executive - ???
  3499. --------d-63---------------------------------
  3500. INT 63 - 4+Power FLOPPY CONTROLLER - ORIGINAL INT 13/40
  3501. Desc:    the "4+Power" quad floppy controller BIOS hooks INT 13 (or INT 40 if
  3502.       INT 13 has been moved there) and places the old value here
  3503. ----------63---------------------------------
  3504. INT 63 - Kofax KF9X00 image manipulation card interface
  3505. --------Q-63---------------------------------
  3506. INT 63 - DESQview/X - SOCKET API
  3507. Notes:    parameters are passed by patching (!) data field immediately following
  3508.       the entry point, as detailed below (see #2645); the preferred
  3509.       method for calling the socket API is via INT 15/AX=DE2Eh
  3510.     the installation check consists of testing for the string "dvxunix"
  3511.       (yes, lowercase) at offset 9 from the interrupt handler start
  3512.       (see #2645)
  3513. SeeAlso: INT 15/AX=DE2Eh,INT BE"DESQview"
  3514. Index:    installation check;DESQview/X socket interface
  3515.  
  3516. Format of DESQview/X socket interrupt handler entry:
  3517. Offset    Size    Description    (Table 2645)
  3518.  00h  3 BYTEs    near jump or short jump + NOP to actual interrupt handler
  3519.  03h    WORD    offset from following pointer for initial top of local stack
  3520.  05h    DWORD    pointer to argument/stack block (see INT 15/AX=DE2Eh)
  3521.  09h  7 BYTEs    signature "dvxunix"
  3522. --------b-6300-------------------------------
  3523. INT 63 - HP 100LX - MAP HIGH MEMORY
  3524.     AH = 00h
  3525.     AL = physical page (00h seg C000, 01h seg C400h, ...)
  3526.     BX = zero-based logical page
  3527.     CX = page number
  3528.     DX = device ID (00h system ROM, 05h plugin, etc.)
  3529. Return: ???
  3530. SeeAlso: AH=01h
  3531. --------N-6300-------------------------------
  3532. INT 63 - BW-TCP - TCPIP.SYS - SET IP ADDRESS???
  3533.     AH = 00h
  3534.     DS:BX -> DWORD containing IP address (big-endian)
  3535. Return: CF clear if successful
  3536.     CF set on error
  3537.     AX destroyed
  3538. Range:    INT 4D to INT FC, selected by configuration
  3539. Note:    the Beame&Whiteside TCP/IP protocol stack uses two consecutive
  3540.       interrupts (62h and 63h by default); the BW-NFS client uses a third
  3541.       consecutive interrupt (64h by default) if it is loaded
  3542. SeeAlso: AH=01h"BW-TCP",AH=02h"BW-TCP"
  3543. --------b-6301-------------------------------
  3544. INT 63 - HP 100LX - SAVE/RESTORE MEMORY MAP
  3545.     AH = 01h
  3546.     AL = function (00h save, 01h restore)
  3547.     ???
  3548. Return: ???
  3549. --------N-6301-------------------------------
  3550. INT 63 - BW-TCP - TCPIP.SYS - ???
  3551.     AH = 01h
  3552.     ES:BX -> ???
  3553.     ???
  3554. Return: ???
  3555. Range:    INT 4D to INT FC, selected by configuration
  3556. Note:    the Beame&Whiteside TCP/IP protocol stack uses two consecutive
  3557.       interrupts (62h and 63h by default); the BW-NFS client uses a third
  3558.       consecutive interrupt (64h by default) if it is loaded
  3559. SeeAlso: AH=00h"BW-TCP",AH=02h"BW-TCP"
  3560. --------N-6302-------------------------------
  3561. INT 63 - BW-TCP - TCPIP.SYS - ???
  3562.     AH = 02h
  3563.     ???
  3564. Return: ???
  3565. SeeAlso: AH=00h"BW-TCP",AH=01h"BW-TCP"
  3566. --------N-6303-------------------------------
  3567. INT 63 - BW-TCP - TCPIP.SYS - GET IP ADDRESS
  3568.     AH = 03h
  3569.     DS:SI -> buffer for DWORD IP address (big-endian)
  3570. Return: AX destroyed
  3571.     CF clear if successful
  3572.     CF set on error
  3573. Note:    this call may use ARP or RARP to determine the address
  3574. --------N-6304-------------------------------
  3575. INT 63 - BW-TCP - TCPIP.SYS - ???
  3576.     AH = 04h
  3577.     ???
  3578. Return: ???
  3579. --------N-6305-------------------------------
  3580. INT 63 - BW-TCP - TCPIP.SYS - ???
  3581.     AH = 05h
  3582.     DS:BX -> ???
  3583.     ES:SI -> ???
  3584. Return: ???
  3585. Range:    INT 4D to INT FC, selected by configuration
  3586. --------N-6306-------------------------------
  3587. INT 63 - BW-TCP - TCPIP.SYS - ???
  3588.     AH = 06h
  3589.     ???
  3590. Return: ???
  3591. --------N-6307-------------------------------
  3592. INT 63 - BW-TCP - TCPIP.SYS - ???
  3593.     AH = 07h
  3594.     ???
  3595. Return: ???
  3596. --------N-6308-------------------------------
  3597. INT 63 - BW-TCP - TCPIP.SYS - SET DEFAULT ??? HANDLER
  3598.     AH = 08h
  3599.     DS:BX -> DWORD containing IP address
  3600. Return: CF clear if successful
  3601.     CF set on error
  3602.     ???
  3603. --------N-6309-------------------------------
  3604. INT 63 - BW-TCP - TCPIP.SYS - INSTALL ??? HANDLERS
  3605.     AH = 09h
  3606.     BL = handler type
  3607.     ES:SI -> FAR handler of specified type
  3608. Return: ???
  3609. SeeAlso: AH=0Ah,AH=0Dh
  3610. --------N-630A-------------------------------
  3611. INT 63 - BW-TCP - TCPIP.SYS - DELETE ??? HANDLERS
  3612.     AH = 0Ah
  3613.     BL = handler type
  3614. Return: CF clear if successful
  3615.     CF set on error (no handler of specified type installed)
  3616. SeeAlso: AH=09h
  3617. --------N-630B-------------------------------
  3618. INT 63 - BW-TCP - TCPIP.SYS - ???
  3619.     AH = 0Bh
  3620.     AL = ???
  3621.     DL = ???
  3622.     DS:BX -> ???
  3623.     ES:SI -> ???
  3624. Return: ???
  3625. --------N-630C-------------------------------
  3626. INT 63 - BW-TCP - TCPIP.SYS - ???
  3627.     AH = 0Ch
  3628.     ???
  3629. Return: ???
  3630. Range:    INT 4D to INT FC, selected by configuration
  3631. --------N-630D-------------------------------
  3632. INT 63 - BW-TCP - TCPIP.SYS - INSTALL DEFAULT ??? HANDLER
  3633.     AH = 0Dh
  3634.     ???
  3635. Return: ???
  3636. Note:    if not already installed, installs a type 06h handler with AH=09h
  3637. SeeAlso: AH=09h
  3638. --------N-630E-------------------------------
  3639. INT 63 - BW-TCP - TCPIP.SYS - CLOSE NETWORK DESCRIPTOR
  3640.     AH = 0Eh
  3641.     ???
  3642. Return: ???
  3643. SeeAlso: INT 61/AH=08h"PC/TCP",INT 61/AH=09h"PC/TCP",INT 61/AH=18h
  3644. --------N-630F-------------------------------
  3645. INT 63 - BW-TCP - TCPIP.SYS - ???
  3646.     AH = 0Fh
  3647.     AL = ???
  3648.     SI = ???
  3649.     DS:DI -> ???
  3650.     ???
  3651. Return: ???
  3652. Range:    INT 4D to INT FC, selected by configuration
  3653. --------N-6310-------------------------------
  3654. INT 63 - BW-TCP - TCPIP.SYS - ???
  3655.     AH = 10h
  3656.     DS:DI -> ???
  3657.     ???
  3658. Return: ???
  3659. --------N-6311-------------------------------
  3660. INT 63 - BW-TCP - TCPIP.SYS - ???
  3661.     AH = 11h
  3662.     ???
  3663. Return: ???
  3664. --------N-6312-------------------------------
  3665. INT 63 - BW-TCP - TCPIP.SYS - LISTEN FOR INCOMING CONNECTIONS
  3666.     AH = 12h
  3667.     DS:SI -> ???
  3668.     ES:BP -> ???
  3669. Return: ???
  3670. SeeAlso: INT 61/AH=23h
  3671. --------N-6313-------------------------------
  3672. INT 63 - BW-TCP - TCPIP.SYS - NOP
  3673.     AH = 13h
  3674. Return: nothing
  3675. Range:    INT 4D to INT FC, selected by configuration
  3676. --------N-6314-------------------------------
  3677. INT 63 - BW-TCP - TCPIP.SYS - OPEN NETWORK CONNECTION
  3678.     AH = 14h
  3679.     BX = network descriptor???
  3680.     DS:SI -> ???
  3681.     ES:BP -> ???
  3682. Return: ???
  3683. SeeAlso: INT 61/AH=13h"PC/TCP",INT 62/AH=13h"ETHDEV"
  3684. --------N-6315-------------------------------
  3685. INT 63 - BW-TCP - TCPIP.SYS - ???
  3686.     AH = 15h
  3687.     DS:DI -> ???
  3688.     ???
  3689. Return: ???
  3690. Range:    INT 4D to INT FC, selected by configuration
  3691. --------N-6316-------------------------------
  3692. INT 63 - BW-TCP - TCPIP.SYS - RESET NETWORK CONNECTION
  3693.     AH = 16h
  3694.     DS:DI -> ???
  3695. Return: ???
  3696. Note:    calls AH=17h after preprocessing
  3697. SeeAlso: AH=17h,INT 61/AH=19h"PC/TCP"
  3698. --------N-6317-------------------------------
  3699. INT 63 - BW-TCP - TCPIP.SYS - ???
  3700.     AH = 17h
  3701.     DS:DI -> ???
  3702.     ???
  3703. Return: ???
  3704. Range:    INT 4D to INT FC, selected by configuration
  3705. SeeAlso: AH=18h
  3706. --------N-6318-------------------------------
  3707. INT 63 - BW-TCP - TCPIP.SYS - ???
  3708.     AH = 18h
  3709.     DS:DI -> ???
  3710.     ???
  3711. Return: ???
  3712. Note:    same as AH=17h, except performed with interrupts disabled
  3713. SeeAlso: AH=17h
  3714. --------N-6319-------------------------------
  3715. INT 63 - BW-TCP - TCPIP.SYS - WRITE TO THE NETWORK
  3716.     AH = 19h
  3717.     DS:DI -> ???
  3718.     ???
  3719. Return: BX = number of bytes NOT written
  3720.     ???
  3721. Range:    INT 4D to INT FC, selected by configuration
  3722. Note:    calls AH=17h with interrupts disabled and ??? set to 01h
  3723. SeeAlso: AH=1Ah,AH=1Bh,INT 61/AH=1Ah"PC/TCP"
  3724. --------N-631A-------------------------------
  3725. INT 63 - BW-TCP - TCPIP.SYS - READ FROM THE NETWORK
  3726.     AH = 1Ah
  3727.     CX = maximum number of bytes to read
  3728.     ES:BP -> ???
  3729.     ???
  3730. Return: CX = number of bytes actually read
  3731.     ???
  3732. SeeAlso: AH=19h,INT 61/AH=1Bh"PC/TCP"
  3733. --------N-631B-------------------------------
  3734. INT 63 - BW-TCP - TCPIP.SYS - ???
  3735.     AH = 1Bh
  3736.     CX = ???
  3737.     ES:BP -> ???
  3738. Return: DX = ???
  3739.     ???
  3740. Range:    INT 4D to INT FC, selected by configuration
  3741. --------N-631C-------------------------------
  3742. INT 63 - BW-TCP - TCPIP.SYS - ???
  3743.     AH = 1Ch
  3744.     DS:DI -> ???
  3745.     ???
  3746. Return: ???
  3747. Note:    calls AH=17h with ???
  3748. SeeAlso: AH=17h
  3749. --------N-631D-------------------------------
  3750. INT 63 - BW-TCP - TCPIP.SYS - ???
  3751.     AH = 1Dh
  3752.     ???
  3753. Return: ???
  3754. Range:    INT 4D to INT FC, selected by configuration
  3755. --------N-631E-------------------------------
  3756. INT 63 - BW-TCP - TCPIP.SYS - ???
  3757.     AH = 1Eh
  3758.     DS:BX -> DWORD containing IP address (big-endian)
  3759.     ???
  3760. Return: CF clear if successful
  3761.     CF set on error
  3762.     ???
  3763. --------N-631F-------------------------------
  3764. INT 63 - BW-TCP - TCPIP.SYS - SET SOCKET ??? HANDLER
  3765.     AH = 1Fh
  3766.     BX = socket number
  3767.     ES:SI -> FAR function for ???
  3768. Return: CF clear if successful
  3769.     CF set on error (out of slots)
  3770. SeeAlso: AH=20h
  3771. --------N-6320-------------------------------
  3772. INT 63 - BW-TCP - TCPIP.SYS - REMOVE SOCKET ??? HANDLER
  3773.     AH = 20h
  3774.     BX = socket number
  3775. Return: CF clear if successful
  3776.     CF set on error (not set)
  3777. Range:    INT 4D to INT FC, selected by configuration
  3778. SeeAlso: AH=1Fh
  3779. --------N-6321-------------------------------
  3780. INT 63 - BW-TCP - TCPIP.SYS - ???
  3781.     AH = 21h
  3782.     ES:SI -> ???
  3783. Return: ???
  3784. SeeAlso: INT 61/AH=1Ch"PC/TCP"
  3785. --------N-6322-------------------------------
  3786. INT 63 - BW-TCP - TCPIP.SYS - REMOVE ??? HANDLER
  3787.     AH = 22h
  3788. Return: CF clear
  3789. Range:    INT 4D to INT FC, selected by configuration
  3790. Note:    decrements a counter if not already zero, and calls AH=0Ah with BL=11h
  3791.       if the counter reaches zero
  3792. --------N-6323-------------------------------
  3793. INT 63 - BW-TCP - TCPIP.SYS - ???
  3794.     AH = 23h
  3795.     DS:BX -> ???
  3796.     ES:SI -> 6-byte buffer for ???
  3797. Return: CF clear if successful
  3798.     CF set on error
  3799. --------N-6324-------------------------------
  3800. INT 63 - BW-TCP - TCPIP.SYS - GET SOCKET
  3801.     AH = 24h
  3802. Return: AX = socket number (0400h-FFFFh)
  3803. Range:    INT 4D to INT FC, selected by configuration
  3804. Note:    the Beame&Whiteside TCP/IP protocol stack uses two consecutive
  3805.       interrupts (62h and 63h by default); the BW-NFS client uses a third
  3806.       consecutive interrupt (64h by default) if it is loaded
  3807. SeeAlso: INT 62/AH=12h"ETHDEV",INT 64"BW-NFS"
  3808. --------N-6325-------------------------------
  3809. INT 63 - BW-TCP - TCPIP.SYS - GET INTERNET ADDRESS
  3810.     AH = 25h
  3811. Return: CL:CH:DL:DH = caller's Internet address
  3812. SeeAlso: AH=26h,INT 61/AH=05h"PC/TCP"
  3813. --------N-6326-------------------------------
  3814. INT 63 - BW-TCP - TCPIP.SYS - SET INTERNET ADDRESS???
  3815.     AH = 26h
  3816.     CL:CH:DL:DH = Internet address
  3817. Return: nothing
  3818. Range:    INT 4D to INT FC, selected by configuration
  3819. Note:    this function sets a different variable than AH=25h returns
  3820. SeeAlso: AH=25h
  3821. --------N-6327-------------------------------
  3822. INT 63 - BW-TCP - TCPIP.SYS - SET ???
  3823.     AH = 27h
  3824.     BX = ???
  3825.     ES:SI -> ???
  3826. Return: ???
  3827. --------N-6328-------------------------------
  3828. INT 63 - BW-TCP - TCPIP.SYS - ???
  3829.     AH = 28h
  3830.     ???
  3831. Return: ???
  3832. --------N-6329-------------------------------
  3833. INT 63 - BW-TCP - TCPIP.SYS - ???
  3834.     AH = 29h
  3835.     ???
  3836. Return: ???
  3837. Range:    INT 4D to INT FC, selected by configuration
  3838. Note:    the Beame&Whiteside TCP/IP protocol stack uses two consecutive
  3839.       interrupts (62h and 63h by default); the BW-NFS client uses a third
  3840.       consecutive interrupt (64h by default) if it is loaded
  3841. --------*-64---------------------------------
  3842. INT 64 - reserved for user interrupt
  3843. --------d-64---------------------------------
  3844. INT 64 - Adaptec controllers - DRIVE 1 DATA
  3845. Desc:    this vector stores the first four bytes of the parameter table for
  3846.       hard disk 1
  3847. Notes:    these vectors are used by the following Adaptec controllers:
  3848.         ACB 2370 A/B/C, ACB 2372 A/B/C, ACB 2333 A/B, 2322B-8, 2322B-16
  3849.     these vectors are NOT used by the following Adaptec controllers:
  3850.         ACB 2310, ACB 2312, ACB 2320D, ACB 2322D
  3851. SeeAlso: INT 60"Adaptec",INT 65"Adaptec",INT 66"Adaptec",INT 67"Adaptec"
  3852. --------b-64---------------------------------
  3853. INT 64 - TI Professional PC - OPTION ROM DATA AREA POINTER (NOT A VECTOR!)
  3854. Desc:    the low word of this vector contains the segment of the RAM data area
  3855.       to be used by the expansion ROM at F400h:6000h, and the high word
  3856.       contains the length of the data area; this segment and size are
  3857.       both set to 0000h if no ROM is installed at F400h:6000h
  3858. SeeAlso: INT 60"TI Professional PC",INT 63"TI Professional"
  3859. SeeAlso: INT 65"TI Professional PC"
  3860. ----------64---------------------------------
  3861. INT 64 - Oracle SQL Protected Mode Executive - ???
  3862. --------N-64---------------------------------
  3863. INT 64 - Novell NetWare to v2.0a - LOW-LEVEL API
  3864. Note:    equivalent to INT 7A for NetWare versions through 2.0a only; later
  3865.       versions do not use this interrupt for IPX/SPX access, instead
  3866.       getting an entry point from INT 2F/AX=7A00h
  3867. SeeAlso: INT 2F/AX=7A00h,INT 7A"Novell"
  3868. --------h-64---------------------------------
  3869. INT 64 - Data General DG10 - MicroECLIPSE COPROCESSOR INTERFACE
  3870. SeeAlso: INT 65"DG10",INT 66"DG10"
  3871. --------r-64---------------------------------
  3872. INT 64 - Extended Batch Language v3.14+
  3873.     AH = function
  3874.         00h to 5Fh chained to previous handler
  3875.         60h to 6Ch reserved, return immediately
  3876.         80h to FFh chained to previous handler
  3877.         6Dh (v4.01+) insert tone in queue
  3878.         AL = ???
  3879.         CX = frequency in Hertz
  3880.         DL = duration in clock ticks
  3881.         Return: AL = 00h if note stored
  3882.                = 01h if no room to store
  3883.         6Eh clear ??? counter/flag
  3884.         6Fh return counter/flag that AH=6Eh clears
  3885.         70h ???
  3886.         AL = ???
  3887.         71h ???
  3888.         AL = ???
  3889.         72h ???
  3890.         73h insert byte at end of keyboard buffer
  3891.         AL = byte to insert
  3892.         Return: AL = 00h if byte inserted
  3893.                = 01h if no room to store
  3894.         74h insert byte at front of keyboard buffer
  3895.         AL = byte to insert
  3896.         Return: AL = 00h if byte inserted
  3897.                = 01h if no room to store
  3898.         75h ???
  3899.         76h get keyboard "stack" status
  3900.         AL = 'K' if kbd read will read physical keyboard
  3901.              'S' if it will read EBL internal keyboard buffer
  3902.         AH = ???
  3903.         77h clear internal keyboard buffer
  3904.         78h ???
  3905.         AL = ???
  3906.         79h ???
  3907.         7Ah ???
  3908.         AL = ???
  3909.         7Bh ???
  3910.         AL = ???
  3911.         7Ch ???
  3912.         AL = ???
  3913.         7Dh ???
  3914.         AL = ???
  3915.         7Eh clear buffer for ???
  3916.         7Fh installation check
  3917.         Return: CX = version in BCD
  3918.             DI = segment of ???
  3919.             BX = segment of next program's PSP???
  3920. Program: Extended Batch Language is a batch-file enhancer by Seaware
  3921. Notes:    the chaining does not check whether the interrupt had been hooked
  3922.       before, so if you try to chain when the previous vector was
  3923.       0000h:0000h, you'll be in trouble
  3924.     functions 72h and 7Ah-7Dh appear to be interfaces to the optional
  3925.       floating-point and extended function packages
  3926. Index:    installation check;EBL|installation check;Extended Batch Language
  3927. --------d-64---------------------------------
  3928. INT 64 - Pdisk by Scott Garfinkle - Overwritten for Hard Drive information
  3929. Note:    This vector is overwritten by Pdisk to install custom harddrive types.
  3930.       It can either destroy 4 vectors and take no memory or TSR and take
  3931.       up some memory.
  3932. SeeAlso: INT 65"Pdisk"
  3933. ----------64---------------------------------
  3934. INT 64 - PC-DRAFT - ASYNCHRONOUS DRIVER
  3935.     ???
  3936. Return: ???
  3937. Program: PC-DRAFT is a powerful CAD environment by rhv.
  3938. SeeAlso: INT 62"PC-DRAFT",INT 65"PC-DRAFT",INT 66"PC-DRAFT",INT 67"PC-DRAFT"
  3939. --------N-6401-------------------------------
  3940. INT 64 U - BW-NFS - BWRPC - ???
  3941.     AH = 01h
  3942.     ES:BX -> ??? (at least 8 bytes)
  3943.     ES:BP -> DWORD ???
  3944.     ???
  3945. Return: CF clear if successful
  3946.         ???
  3947.     CF set on error
  3948.         CX = 0000h
  3949. Range:    INT 4E to INT FD, selected by configuration
  3950. Notes:    the Beame&Whiteside TCP/IP protocol stack uses two consecutive
  3951.       interrupts (62h and 63h by default); the BW-NFS client uses a third
  3952.       consecutive interrupt (64h by default) if it is loaded
  3953.     the BWRPC installation check consists of determining the interrupt
  3954.       vector assigned to it (two more than the value returned by reading
  3955.       the ETHDEV27 device), and testing whether the word immediately
  3956.       preceding the interrupt handler is 4257h ('BW')
  3957. SeeAlso: INT 62/AH=00h"ETHDEV",INT 63"BW-TCP"
  3958. Index:    installation checks;BWRPC
  3959. --------N-6402-------------------------------
  3960. INT 64 U - BW-NFS - BWRPC - ???
  3961.     AH = 02h
  3962.     DS:DI -> ???
  3963. Return: ???
  3964. Note:    this call is passed directly through to INT 62/AH=07h
  3965. SeeAlso: INT 62/AH=07h"ETHDEV"
  3966. --------N-6403-------------------------------
  3967. INT 64 U - BW-NFS - BWRPC - ADD ???
  3968.     AH = 03h
  3969.     AL = ???
  3970.     BP = ???
  3971.     ES:SI -> ???
  3972. Return: ???
  3973. Note:    this call is passed directly through to INT 62/AH=0Bh
  3974. SeeAlso: AH=04h,INT 62/AH=0Bh"ETHDEV"
  3975. --------N-6404-------------------------------
  3976. INT 64 U - BW-NFS - BWRPC - REMOVE ???
  3977.     AH = 04h
  3978.     BP = ???
  3979. Return: ???
  3980. Range:    INT 4E to INT FD, selected by configuration
  3981. Note:    this call is passed directly through to INT 62/AH=0Ch
  3982. SeeAlso: AH=03h,INT 62/AH=0Ch"ETHDEV"
  3983. --------N-6405-------------------------------
  3984. INT 64 U - BW-NFS - BWRPC - ???
  3985.     AH = 05h
  3986.     CX = ???
  3987. Return: ???
  3988. Note:    this call is passed directly through to INT 62/AH=13h
  3989. SeeAlso: INT 62/AH=13h"ETHDEV"
  3990. --------N-6406-------------------------------
  3991. INT 64 U - BW-NFS - BWRPC - ???
  3992.     AH = 06h
  3993.     ES:SI -> ???
  3994. Return: AL = 00h if CF clear
  3995. Range:    INT 4E to INT FD, selected by configuration
  3996. Note:    this call is passed directly through to INT 62/AH=14h
  3997. SeeAlso: INT 62/AH=14h"ETHDEV"
  3998. --------N-6407-------------------------------
  3999. INT 64 U - BW-NFS - BWRPC - GET IP ADDRESS
  4000.     AH = 07h
  4001. Return: CX:DX = IP address
  4002. --------N-6410-------------------------------
  4003. INT 64 U - BW-NFS - BWRPC - CALL ETHDEV.SYS
  4004.     AH = 10h
  4005.     AL = ETHDEV function number
  4006.     other registers as appropriate for ETHDEV call
  4007. Return: as returned by ETHDEV
  4008. Note:    this call is passed directly through to INT 62
  4009. SeeAlso: INT 62/AH=00h"ETHDEV"
  4010. --------N-6411-------------------------------
  4011. INT 64 U - BW-NFS - BWRPC - NOP???
  4012.     AH = 11h
  4013. Return: CF clear
  4014. Range:    INT 4E to INT FD, selected by configuration
  4015. --------N-64FE-------------------------------
  4016. INT 64 - BW-NFS - BWRPC - MAP EMS PAGE FRAME
  4017.     AH = FEh
  4018.     AL = direction
  4019.         00h map in driver's memory block
  4020.         01h map out driver's memory block
  4021. Return: CF clear if successful
  4022.     CF set on error
  4023.         AL = error code
  4024. Range:    INT 4E to INT FD, selected by configuration
  4025. Note:    this call is passed through directly to ETHDEV.SYS (see INT 62/AH=FEh)
  4026. SeeAlso: INT 21/AH=3Fh"BW-TCP",INT 62/AH=FEh,INT 63"BW-TCP"
  4027. --------*-65---------------------------------
  4028. INT 65 - reserved for user interrupt
  4029. --------d-65---------------------------------
  4030. INT 65 - Adaptec controllers - DRIVE 1 DATA
  4031. Desc:    this vector stores the second four bytes of the parameter table for
  4032.       hard disk 1
  4033. SeeAlso: INT 64"Adaptec",INT 66"Adaptec",INT 67"Adaptec",#0586
  4034. --------b-65---------------------------------
  4035. INT 65 - TI Professional PC - OPTION ROM DATA AREA POINTER (NOT A VECTOR!)
  4036. Desc:    the low word of this vector contains the segment of the RAM data area
  4037.       to be used by the expansion ROM at F400h:8000h, and the high word
  4038.       contains the length of the data area; this segment and size are
  4039.       both set to 0000h if no ROM is installed at F400h:8000h
  4040. SeeAlso: INT 60"TI Professional PC",INT 64"TI Professional"
  4041. SeeAlso: INT 66"TI Professional PC"
  4042. --------h-65---------------------------------
  4043. INT 65 - Data General DG10 - MicroECLIPSE COPROCESSOR INTERFACE
  4044. SeeAlso: INT 64"DG10",INT 66"DG10"
  4045. --------N-65---------------------------------
  4046. INT 65 - FTP Software NDIS-Packet Driver adapter - POST PROCESSING INTERRUPT
  4047. --------U-65---------------------------------
  4048. INT 65 - SD.COM v6.2
  4049. Desc:    The unregistered version of SD62.COM uses the low byte of this vector
  4050.       to count the number of invocations, displaying a registration
  4051.       reminder each time after the 20th use.
  4052. --------d-65---------------------------------
  4053. INT 65 - Pdisk by Scott Garfinkle - Overwritten for Hard Drive information
  4054. SeeAlso: INT 64"Pdisk",INT 66"Pdisk"
  4055. ----------65---------------------------------
  4056. INT 65 - PC-DRAFT - SECONDARY DISPLAY DRIVER
  4057.     ???
  4058. Return: ???
  4059. Program: PC-DRAFT is a powerful CAD environment by rhv.
  4060. SeeAlso: INT 62"PC-DRAFT",INT 64"PC-DRAFT",INT 66"PC-DRAFT",INT 67"PC-DRAFT"
  4061. --------s-65---------------------------------
  4062. INT 65 - Ad Lib SOUND.COM - INTERFACE
  4063.     SI = function number (see also entries below)
  4064.         0000h Init
  4065.         0002h RelTimeStart
  4066.         0003h SetState
  4067.         0004h GetState
  4068.         0005h Flush
  4069.         0006h SetMode
  4070.         0007h GetMode
  4071.         0008h SetRelVolume
  4072.         0009h SetTempo
  4073.         000Ah SetTranspose
  4074.         000Bh GetTranspose
  4075.         000Ch SetActVoice
  4076.         000Dh GetActVoice
  4077.         000Eh PlayNoteDel
  4078.         000Fh PlayNote
  4079.         0010h SetTimbre
  4080.         0011h SetPitch
  4081.         0012h SetTickBeat
  4082.         0013h NoteOn
  4083.         0014h NoteOff
  4084.         0015h Timbre
  4085.         0016h SetPitchBend
  4086.         0017h WaveForm
  4087.     ES:BX -> arguments
  4088. Note:    the installation check consists of checking for the signature block
  4089.       immediately preceding the interrupt handler (see #2646)
  4090. SeeAlso: SI=8000h
  4091. Index:    installation check;Ad Lib SOUND.COM
  4092.  
  4093. Format of AdLib signature block:
  4094. Offset    Size    Description    (Table 2646)
  4095.  00h    WORD    version number
  4096.  02h 19 BYTEs    "SOUND-DRIVER-AD-LIB"
  4097.  15h    BYTE    01h
  4098.  16h    BYTE    01h
  4099.  17h    BYTE    00h
  4100. --------s-65----SI0000-----------------------
  4101. INT 65 - Ad Lib SOUND.COM - INITIALIZE (RESET)
  4102.     SI = 0000h
  4103. --------s-65----SI0003-----------------------
  4104. INT 65 - Ad Lib SOUND.COM - SET STATE
  4105.     SI = 0003h
  4106.     ES:BX -> WORD new state (0000h disabled, 0001h enabled)
  4107. SeeAlso: SI=0004h
  4108. --------s-65----SI0004-----------------------
  4109. INT 65 - Ad Lib SOUND.COM - GET STATE
  4110.     SI = 0004h
  4111. Return: AX = status
  4112.         0000h all done playing sounds
  4113.         else  still playing sounds
  4114. SeeAlso: SI=0003h
  4115. --------s-65----SI0006-----------------------
  4116. INT 65 - Ad Lib SOUND.COM - SET MODE
  4117.     SI = 0006h
  4118.     ES:BX -> WORD new mode (0000h melodic, 0001h percussive)
  4119. SeeAlso: SI=0007h
  4120. --------s-65----SI0007-----------------------
  4121. INT 65 - Ad Lib SOUND.COM - GET MODE
  4122.     SI = 0007h
  4123. Return: AX = mode
  4124.         0000h melodic
  4125.         0001h percussive
  4126. SeeAlso: SI=0006h
  4127. --------s-65----SI000C-----------------------
  4128. INT 65 - Ad Lib SOUND.COM - SET ACTIVE VOICE
  4129.     SI = 000Ch
  4130.     ES:BX -> WORD voice = 0000h to 0008h
  4131. SeeAlso: SI=000Dh
  4132. --------s-65----SI000D-----------------------
  4133. INT 65 - Ad Lib SOUND.COM - GET ACTIVE VOICE
  4134.     SI = 000Dh
  4135. Return: AX = voice (0000h to 0008h)
  4136. SeeAlso: SI=000Ch
  4137. --------s-65----SI8000-----------------------
  4138. INT 65 u - Media Vision FM.COM v4.1a+ - GET INTERNAL DATA STRUCTURES
  4139.     SI = 8000h
  4140. Return: DX:AX -> internal data structures
  4141. Program: FM.COM is an Ad Lib SOUND.COM-compatible driver for Media Vision's
  4142.       Pro Audio Spectrum sound boards
  4143. SeeAlso: SI=8001h
  4144. --------s-65----SI8001-----------------------
  4145. INT 65 u - Media Vision FM.COM v4.1a+ - GET VOICE COUNT
  4146.     SI = 8001h
  4147. Return: AX = ???
  4148.     DX = number of voices??? (09h or 0Bh)
  4149. SeeAlso: SI=8000h
  4150. --------s-65----SI8002-----------------------
  4151. INT 65 - Media Vision FM.COM v4.1a+ - START BACKGROUND FM SOUNDS
  4152.     SI = 8002h
  4153. SeeAlso: SI=8003h
  4154. --------s-65----SI8003-----------------------
  4155. INT 65 - Media Vision FM.COM v4.1a+ - STOP BACKGROUND FM SOUNDS
  4156.     SI = 8003h
  4157. SeeAlso: SI=8002h
  4158. --------s-65----SI8004-----------------------
  4159. INT 65 U - Media Vision FM.COM v4.1a+ - GET ???
  4160.     SI = 8004h
  4161. Return: AX = ??? (0280h)
  4162.     DX = ??? (01A0h)
  4163. --------s-65----SI8005-----------------------
  4164. INT 65 U - Media Vision FM.COM v4.1a+ - ???
  4165.     SI = 8005h
  4166.     ???
  4167. Return: ???
  4168. SeeAlso: SI=8000h
  4169. --------S-65---------------------------------
  4170. INT 65 U - EZRECV v1.0 - API
  4171.     AX = function
  4172.         0000h ???
  4173.         Return: AX = ??? or FFFFh
  4174.         0001h ???
  4175.         Return: AX = status (0000h or 0001h)
  4176.         0002h ???
  4177.         Return: AX = status (0000h or 0001h)
  4178.         0003h set ??? to 0001h
  4179.         Return: AX = 0000h
  4180.         0004h ???
  4181.         Return: AX = ???
  4182. Return: BH = COM port being used
  4183.     BL = speed???
  4184.     CH = ???
  4185.     CL = ???
  4186.     DX = ???
  4187.     DS = ???
  4188.     ES = EZRECV data segment
  4189. Program: EZRECV is a background Zmodem file receiver by Express Consulting
  4190. --------*-66---------------------------------
  4191. INT 66 - reserved for user interrupt
  4192. --------d-66---------------------------------
  4193. INT 66 - Adaptec controllers - DRIVE 1 DATA
  4194. Desc:    this vector stores the third four bytes of the parameter table for
  4195.       hard disk 1
  4196. SeeAlso: INT 64"Adaptec",INT 65"Adaptec",INT 67"Adaptec"
  4197. --------b-66---------------------------------
  4198. INT 66 - TI Professional PC - SYSTEM INFORMATION (NOT A VECTOR!)
  4199. Desc:    the low word of this vector contains the system memory size in
  4200.       paragraphs; the third byte contains the number of outstanding
  4201.       interrupt requests, and the fourth byte contains a description
  4202.       of the installed drive types (see #2647)
  4203. SeeAlso: INT 60"TI Professional PC",INT 67"TI Professional"
  4204.  
  4205. Bitfields for TI Professional drive type information:
  4206. Bit(s)    Description    (Table 2647)
  4207.  7    floppy drive D: has 80 tracks
  4208.  6    floppy drive D: is double-sided
  4209.  5    floppy drive C: has 80 tracks
  4210.  4    floppy drive C: is double-sided
  4211.  3    floppy drive B: has 80 tracks
  4212.  2    floppy drive B: is double-sided
  4213.  1    floppy drive A: has 80 tracks
  4214.  0    floppy drive A: is double-sided
  4215. --------h-66---------------------------------
  4216. INT 66 - Data General DG10 - MicroECLIPSE COPROCESSOR INTERFACE
  4217. SeeAlso: INT 64"DG10"
  4218. --------N-66---------------------------------
  4219. INT 66 C - Nanosoft, Inc. TurboNET - NETWORK PROCESSING ???
  4220. Program: TurboNET is a NetBIOS-based file redirector and server
  4221. Note:    hooked but not used (IRET) by both redirector and server; called from
  4222.       server's INT 28 handler
  4223. SeeAlso: INT 2F/AX=8100h
  4224. --------d-66---------------------------------
  4225. INT 66 - Pdisk by Scott Garfinkle - Overwritten for Hard Drive information
  4226. SeeAlso: INT 64"Pdisk",INT 67"Pdisk"
  4227. --------W-66---------------------------------
  4228. INT 66 - Microsoft Windows VITD.386 Virtual Interval Timer
  4229. Note:    This Windows 3.x Virtual Device Driver implements a virtual timer
  4230.       which will expire and call INT 66.  This timer can be used to
  4231.       calculate elapsed execution time etc.
  4232. --------K-66---------------------------------
  4233. INT 66 - Newkey v5.4 - INSTALLATION VECTOR
  4234. Return: immediately (IRET)
  4235. Program: Newkey is a shareware keyboard macro program by Frank A. Bell
  4236. Range:    INT 60h to INT 67h, selected by scanning for highest unused vector
  4237. Note:    the installation check consists of testing for the signature bytes
  4238.       FDh FCh FFh FEh at offset 03h in the interrupt handlers segment
  4239. BUG:    the code obviously intends to use INT F0-FE, INT 70-77, and INT 68-6F
  4240.       before falling back to INT 60-67, but only uses the last of these
  4241.       ranges in v5.4
  4242. SeeAlso: INT 2F/AX=E300h
  4243. Index: installation checks;Newkey|Newkey;installation check
  4244. ----------66---------------------------------
  4245. INT 66 - PC-DRAFT - TABLET/DIGITIZER DRIVER
  4246.     ???
  4247. Return: ???
  4248. Program: PC-DRAFT is a powerful CAD environment by rhv.
  4249. SeeAlso: INT 62"PC-DRAFT",INT 64"PC-DRAFT",INT 65"PC-DRAFT",INT 67"PC-DRAFT"
  4250. --------U-66---------------------------------
  4251. INT 66 - PC-Magazin - INCA
  4252.     details not yet availble
  4253. Program: INCA is a utility from PC-Magazin (the German edition of PC Magazine)
  4254.       issue 51-52/85.
  4255. SeeAlso: INT 61"SWAPx"
  4256. --------F-6601-------------------------------
  4257. INT 66 - BitFax Scheduler - SET MODE???
  4258.     AH = 01h
  4259. SeeAlso: AH=02h
  4260. --------F-6602-------------------------------
  4261. INT 66 - BitFax Scheduler - SET MODE???
  4262.     AH = 02h
  4263. SeeAlso: AH=01h
  4264. --------F-6603-------------------------------
  4265. INT 66 - BitFax Scheduler - SCHEDULE FAX TRANSMISSIONS
  4266.     AH = 03h
  4267.     ???
  4268. Return: ???
  4269. SeeAlso: AH=05h
  4270. --------F-6604-------------------------------
  4271. INT 66 - BitFax Scheduler - GET STATUS???
  4272.     AH = 04h
  4273. Return: AX = ??? (0000h or 0001h)
  4274.     DX = BitSched version???  (for versions >= 3.00)
  4275.         9796h (ver. 3.00)
  4276.         97E6h (ver. 3.02)
  4277.         92D0h (ver. 3.04.06)
  4278.         9510h (ver. 3.06.02)
  4279. SeeAlso: AH=06h,AX=3345h,INT 2F/AX=8000h"FaxBIOS"
  4280. --------F-6605-------------------------------
  4281. INT 66 - BitFax Scheduler - CONVERT FILE AND SEND FAX
  4282.     AH = 05h
  4283.     BX:CX -> command block (see #2648)
  4284.     ???
  4285. Return: ???
  4286. SeeAlso: AH=03h
  4287.  
  4288. Format of BitFax command block:
  4289. Offset    Size    Description    (Table 2648)
  4290.  00h 18 BYTEs    configuration bytes???
  4291.  12h    BYTEs    ASCIZ temporary file name to place converted fax
  4292.  52h    BYTEs    ASCIZ directory containing BitFax executables
  4293.  92h    BYTEs    ASCIZ telephone number
  4294.  C2h    BYTE    cover page control (00h don't send, 01h do send cover page)
  4295.  C3h 15 BYTEs    configuration bytes???
  4296.  E2h    BYTEs    ASCIZ path of BITFAX.TRA file (containing additional
  4297.           configuration information???)
  4298. 122h    BYTEs    configuration bytes???
  4299. 12Ch    BYTE    00h don't send cover page
  4300.         01h send cover page
  4301. 12Dh  7 BYTEs    configuration bytes???
  4302. 134h    BYTEs    ASCIZ path of file to send
  4303. 174h    BYTEs    more configuration bytes???
  4304.     ???
  4305. --------F-6606-------------------------------
  4306. INT 66 - BitFax Scheduler - SET MODE???
  4307.     AH = 06h
  4308. Return: DX = BitSched version??? (same as AH=04h)
  4309. SeeAlso: AH=04h
  4310. --------s-660688-----------------------------
  4311. INT 66 - IBMSND driver, DIGPAK - PLAY 8-BIT DIGITIZED SOUND
  4312.     AX = 0688h
  4313.     DS:SI -> SNDSTRUC (see #2649)
  4314. Return: ???
  4315. Program: The IBMSND driver is part of John W. Ratcliff's
  4316.        The IBM Digitized Sound Package
  4317.     DIGPAK is a set of digitized sound drivers written by
  4318.       John W. Ratcliff, The Audio Solution, Inc.
  4319. Note:    the installation check consists of looking for a valid signature
  4320.       string six bytes prior to the interrupt handler; this string may
  4321.       be either "KERN" or "MIDI" (in the latter case, call AX=0701h to
  4322.       determine whether IBMSND is installed)
  4323. SeeAlso: AX=068Bh,AX=068Fh,AX=0701h
  4324.  
  4325. Format of IBMSND driver SNDSTRUC:
  4326. Offset    Size    Description    (Table 2649)
  4327.  00h    DWORD    -> audio data
  4328.  04h    WORD    length of audio data in bytes
  4329.  06h    DWORD    -> playback status flag
  4330.  0Ah    WORD    playback frequency
  4331. --------s-660689-----------------------------
  4332. INT 66 - IBMSND driver, DIGPAK - REPORT SOUND DRIVER STATUS
  4333.     AX = 0689h
  4334. Return: AX = status
  4335.         0000h no sound playing
  4336.         0001h sound effect is currently playing
  4337.     ---DIGPAK---
  4338.     BX = version number (v3.1+)
  4339.     DX = looping status
  4340.         0000h no sound looping
  4341.         0001h sound effect is currently looping
  4342. SeeAlso: AX=0688h,AX=068Bh,AX=068Ch
  4343. Index:    version check;DIGPAK
  4344. --------s-66068A-----------------------------
  4345. INT 66 - IBMSND driver, DIGPAK - PREFORMAT SOUND
  4346.     AX = 068Ah
  4347.     DS:SI -> SNDSTRUC (see #2649)
  4348. Desc:    convert audio data into output hardware format
  4349. SeeAlso: AX=068Bh
  4350. --------s-66068B-----------------------------
  4351. INT 66 - IBMSND driver, DIGPAK - PLAY PREFORMATTED SOUND
  4352.     AX = 068Bh
  4353.     DS:SI -> SNDSTRUC (see #2649)
  4354. Return: AX = ???
  4355. SeeAlso: AX=0688h,AX=068Ah,AX=068Fh
  4356. --------s-66068C-----------------------------
  4357. INT 66 - IBMSND driver, DIGPAK - REPORT AUDIO DRIVER CAPABILITIES
  4358.     AX = 068Ch
  4359. Return: AX = capabilities (see #2650)
  4360.     DX = playback rate if fixed-frequency playback
  4361.     ---DIGPAK---
  4362.     BX:CX -> ASCIZ ID string
  4363. SeeAlso: AX=0689h,AX=068Dh
  4364.  
  4365. Bitfields for IBMSND driver capabilities:
  4366. Bit(s)    Description    (Table 2650)
  4367.  0    can play audio in background
  4368.  1    data is massaged for output device
  4369.  2    driver plays at fixed frequency, resampling input data to fit
  4370.  3    driver uses timer interrupt
  4371. ---DIGPAK---
  4372.  4    device supports timer sharing
  4373.  5    supports looped sounds and pending
  4374.  6    supports stereo panning
  4375.  7    supports 8-bit PCM stereo playback
  4376.  8    supports audio recording
  4377.  9    supports DMA bakcfilling
  4378. --------s-66068D-----------------------------
  4379. INT 66 - IBMSND driver, DIGPAK - REPORT CURRENT SAMPLE ADDRESS
  4380.     AX = 068Dh
  4381. Return: AX = current playback address
  4382. Desc:    determine what point in the audio data the playback has reached, for
  4383.       synchronization with video or animation effects
  4384. Notes:    this function applies to background playback only
  4385.     the reported address may be an approximation rather than the exact
  4386.       address
  4387. SeeAlso: AX=068Ch,AX=0691h
  4388. --------s-66068E-----------------------------
  4389. INT 66 - IBMSND driver, DIGPAK - SET CALLBACK ADDRESS
  4390.     AX = 068Eh
  4391.     BX:DX -> callback function
  4392.         0000h:0000h to disable callback
  4393.     DS = value to load into DS when calling the callback function
  4394. Desc:    specify the function to be called when playback of a sound effect is
  4395.       completed
  4396. Note:    the callback function will typically be called during a hardware
  4397.       interrupt, so all the usual precautions should be taken except for
  4398.       preserving registers
  4399. SeeAlso: AX=0691h
  4400. --------s-66068F-----------------------------
  4401. INT 66 - IBMSND driver, DIGPAK - STOP CURRENT SOUND
  4402.     AX = 068Fh
  4403. Desc:    cause any currently-playing sound effect to be terminated
  4404. SeeAlso: AX=0688h,AX=068Bh
  4405. --------s-660690-----------------------------
  4406. INT 66 - IBMSND driver, DIGPAK - "SetAudioHardware" - SET UP HARDWARE INFO
  4407.     AX = 0690h
  4408.     BX = IRQ
  4409.     CX = base address
  4410.     DX = other setup value (device-dependent???)
  4411. --------s-660691-----------------------------
  4412. INT 66 - IBMSND driver, DIGPAK - REPORT CALLBACK ADDRESS
  4413.     AX = 0691h
  4414. Return: AX:DX -> current callback function
  4415.     BX = original caller's DS register
  4416. Program: The IBMSND driver is part of John W. Ratcliff's
  4417.        The IBM Digitized Sound Package
  4418.     DIGPAK is a set of digitized sound drivers written by
  4419.       John W. Ratcliff, The Audio Solution, Inc.
  4420. SeeAlso: AX=068Eh
  4421. --------s-660693-----------------------------
  4422. INT 66 - DIGPAK - SET TIMER DIVISOR RATE
  4423.     AX = 0693h
  4424.     DX = rate
  4425. Program: DIGPAK is a set of digitized sound drivers written by
  4426.       John W. Ratcliff, The Audio Solution, Inc.
  4427. --------s-660694-----------------------------
  4428. INT 66 - DIGPAK - PLAY PREFORMATTED DATA
  4429.     AX = 0694h
  4430.     DS:SI -> Sound Data structure (see #2649)
  4431. Return: AX = status???
  4432. --------s-660695-----------------------------
  4433. INT 66 - DIGPAK - POST AUDIO PENDING
  4434.     AX = 0695h
  4435.     DS:SI -> Sound Data structure (***)
  4436. Return: AX = status
  4437.         0000h sound started playing
  4438.         0001h sound was posted as pending to play
  4439.         0002h sound effect already pending, this one not posted
  4440. SeeAlso: AX=0696h
  4441. --------s-660696-----------------------------
  4442. INT 66 - DIGPAK - GET AUDIO PENDING STATUS
  4443.     AX = 0696h
  4444. Return: AX = status
  4445.         0000h no sound is playing
  4446.         0001h sound playing, and a sound is pending
  4447.         0002h sound playing, no sound pending
  4448. SeeAlso: AX=0695h
  4449. --------s-660697-----------------------------
  4450. INT 66 - DIGPAK - SET STEREO PANNING
  4451.     AX = 0697h
  4452.     DX = panning position (0 = right, 127 = left)
  4453. Return: AX = status
  4454.         0000h command ignored (not supported)
  4455.         0001h panning set
  4456. --------s-660698-----------------------------
  4457. INT 66 - DIGPAK - SET PLAY MODE
  4458.     AX = 0698h
  4459.     DX = playback mode
  4460.         0000h 8-bit PCM
  4461.         0001h 8-bit stereo PCM
  4462.         0002h 16-bit PCM
  4463.         0003h 16-bit stereo PCM
  4464. Return: AX = status
  4465.         0000h command ignored
  4466.         0001h mode set
  4467. --------s-660699-----------------------------
  4468. INT 66 - DIGPAK - GET ADDRESSES
  4469.     AX = 0699h
  4470. Return: AX = pending address
  4471.     BX = semaphore address
  4472. --------s-66069A-----------------------------
  4473. INT 66 - DIGPAK - SET RECORD MODE
  4474.     AX = 069Ah
  4475.     DX = recording mode
  4476.         0000h turn audio recording on
  4477.         0001h turn audio recording off
  4478. Return: AX = status
  4479.         0000h command ignored
  4480.         0001h audio recording mode set
  4481. --------s-66069B-----------------------------
  4482. INT 66 - DIGPAK - STOP NEXT LOOP
  4483.     AX = 069Bh
  4484. --------s-66069C-----------------------------
  4485. INT 66 - DIGPAK - SET DMA BACKFILL MODE
  4486.     AX = 069Ch
  4487.     DX = mode
  4488.         0000h turn backfill mode on
  4489.         0001h turn backfill mode off
  4490. Return: AX = status
  4491.         0000h command ignored
  4492.         0001h backfill mode set
  4493. SeeAlso: AX=069Dh,AX=069Eh
  4494. --------s-66069D-----------------------------
  4495. INT 66 - DIGPAK - REPORT DMA COUNTER
  4496.     AX = 069Dh
  4497. Return: AX = DMA counter
  4498. SeeAlso: AX=069Eh
  4499. --------s-66069E-----------------------------
  4500. INT 66 - DIGPAK - VERIFY DMA BLOCK
  4501.     AX = 069Eh
  4502.     CX = length of buffer
  4503.     ES:BX -> buffer containing sound data
  4504. Return: AX = status
  4505.         0000h block crosses 64K bounadary
  4506.         0001h block is OK
  4507. SeeAlso: AX=069Dh
  4508. --------s-66069F-----------------------------
  4509. INT 66 - DIGPAK - SET PCM VOLUME
  4510.     AX = 069Fh
  4511.     BX = left channel volume (0-100)
  4512.     CX = right channel volume (0-100)
  4513. Return: AX =  status
  4514.         0000h command ignored
  4515.         0001h volume set
  4516. --------s-6606A0-----------------------------
  4517. INT 66 - DIGPAK - SET DPMI MODE
  4518.     AX = 06A0h
  4519.     DX = mode
  4520.         0000h 32-bit register addressing on
  4521.         0001h 32-bit register addressing off
  4522. SeeAlso: INT 31/AX=0400h
  4523. --------s-660700-----------------------------
  4524. INT 66 - MIDPAK - UNINSTALL
  4525.     AX = 0700h
  4526. Note:    this function should NOT be called by applications
  4527. Program: MIDPAK is a set of MIDI sound drivers developed by Miles Design
  4528.       Incorporated.
  4529. --------s-660701-----------------------------
  4530. INT 66 - IBM Digitized Sound Package MIDI driver - GET DIGITIZED SOUND CAPABIL
  4531.     AX = 0701h
  4532. Return: AX = digitized sound capabilities
  4533.         0000h if digitized sound driver (functions 06xxh) not available
  4534. Notes:    the installation check for the MIDI driver is to test for the signature
  4535.       "MIDI" six bytes before the interrupt handler
  4536.     also supported by MIDPAK, the successor to the Digitized Sound
  4537.       Package's MIDI driver
  4538. SeeAlso: AX=0688h
  4539. --------s-660702-----------------------------
  4540. INT 66 - MIDPAK - PLAY SEQUENCE
  4541.     AX = 0702h
  4542.     BX = Sequence number
  4543. Return: AX = status
  4544.         0000h Sequence is being played
  4545.         0001h Sequence not available
  4546. SeeAlso: AX=0703h,AX=0705h
  4547. --------s-660703-----------------------------
  4548. INT 66 - MIDPAK - SEGUE SEQUENCE
  4549.     AX = 0703h
  4550.     BX = sequence number
  4551.     CX = activation code (FFFFh is next trigger)
  4552. Return: ???
  4553. --------s-660704-----------------------------
  4554. INT 66 - MIDPAK - REGISTER XMIDI
  4555.     AX = 0704h
  4556.     CX:BX -> XMIDI sequence data
  4557.     DI:SI = length of XMIDI data
  4558. Return: AX = status
  4559.         0000h unable to register XMIDI data
  4560.         0001h XMIDI file registered resident
  4561.         0002h XMIDI file was registered to the application
  4562. --------s-660705-----------------------------
  4563. INT 66 - MIDPAK - STOP MIDI
  4564.     AX = 0705h
  4565. SeeAlso: AX=0702h,AX=0709h
  4566. --------s-660706-----------------------------
  4567. INT 66 O - MIDPAK - REMAP CHANNEL
  4568.     AX = 0706h
  4569.     BX = sequence
  4570.     CX = physical
  4571. --------s-660707-----------------------------
  4572. INT 66 - MIDPAK - REPORT TRIGGER EVENT COUNTER
  4573.     AX = 0707h
  4574. Return: AX = count of number of callbacks since last reset
  4575.     DX = ID
  4576. SeeAlso: AX=0708h,AX=0713h
  4577. --------s-660708-----------------------------
  4578. INT 66 - MIDPAK - RESET EVENT TRIGGER COUNTER
  4579.     AX = 0708h
  4580. SeeAlso: AX=0707h,AX=0713h
  4581. --------s-660709-----------------------------
  4582. INT 66 O - MIDPAK - MIDI SLEEP
  4583.     AX = 0709h
  4584. SeeAlso: AX=070Ah
  4585. --------s-66070A-----------------------------
  4586. INT 66 O - MIDPAK - MIDI AWAKE
  4587.     AX = 070Ah
  4588. SeeAlso: AX=0709h
  4589. --------s-66070B-----------------------------
  4590. INT 66 - MIDPAK - RESUME PLAYING
  4591.     AX = 070Bh
  4592. SeeAlso: AX=070Ch
  4593. --------s-66070C-----------------------------
  4594. INT 66 - MIDPAK - GET SEQUENCE STATUS
  4595.     AX = 070Ch
  4596. Return: AX = status
  4597.         0000h sequence stopped
  4598.         0001h sequence playing
  4599.         0002h sequence done
  4600. SeeAlso: AX=070Bh
  4601. --------s-66070D-----------------------------
  4602. INT 66 - MIDPAK - REGISTER XMIDI FILE
  4603.     AX = 070Dh
  4604.     CX:BX -> ASCII filename
  4605. SeeAlso: AX=0704h,AX=0710h
  4606. --------s-66070E-----------------------------
  4607. INT 66 - MIDPAK - GET RELATIVE VOLUME
  4608.     AX = 070Eh
  4609. Return:    AX = current volume
  4610. SeeAlso: AX=070Fh
  4611. --------s-66070F-----------------------------
  4612. INT 66 - MIDPAK - SET RELATIVE VOLUME
  4613.     AX = 070Fh
  4614.     BX = new volume
  4615.     CX = time
  4616. SeeAlso: AX=070Eh
  4617. --------s-660710-----------------------------
  4618. INT 66 - MIDPAK - LOAD MIDPAK DRIVER
  4619.     AX = 0710h
  4620.     BX = segment of .ADV driver
  4621.     CX = 0000h (offset must be zero)
  4622.     DX:SI -> .AD driver
  4623. SeeAlso: AX=070Dh
  4624. --------s-660711-----------------------------
  4625. INT 66 - MIDPAK - POLL MIDPAK
  4626.     AX = 0711h
  4627. Return: AX = ???
  4628.     ???
  4629. SeeAlso: AX=0712h
  4630. --------s-660712-----------------------------
  4631. INT 66 - MIDPAK - GET MIDI CLOCK
  4632.     AX = 0712h
  4633. Return: AX:DX = clock counter
  4634.     CX:BX = clock address
  4635. SeeAlso: AX=0711h,AX=0713h
  4636. --------s-660713-----------------------------
  4637. INT 66 - MIDPAK - GET TRIGGER COUNT ADDRESS
  4638.     AX = 0713h
  4639. Return: AX:DX -> trigger counter address
  4640. SeeAlso: AX=0707h,AX=0712h,AX=0714h
  4641. --------s-660714-----------------------------
  4642. INT 66 - MIDPAK - GET EVENT ID ADDRESS
  4643.     AX = 0714h
  4644. Return: AX:DX -> event ID
  4645. SeeAlso: AX=0713h,AX=0716h
  4646. --------s-660716-----------------------------
  4647. INT 66 - MIDPAK - REPORT SEQUENCE NUMBER
  4648.     AX = 0716h
  4649. Return: AX = current sequence number
  4650. SeeAlso: AX=0702h
  4651. Program: MIDPAK is a set of MIDI sound drivers developed by Miles Design
  4652.       Incorporated.
  4653. --------n-6610-------------------------------
  4654. INT 66 - PenDOS - TDMOUSE.EXE - GET ???
  4655.     AH = 10h
  4656. Return: CF clear
  4657.     AX = 0000h
  4658.     BX = ??? (0012h)
  4659.     DX:CX -> TDMOUSE INT 33 handler (IRET to hide mouse from other apps)
  4660. Program: TDMOUSE is a PenDOS hardware driver which allows a mouse to emulate
  4661.       a touchpad; PenDOS is a set of programs by Communication Intelligence
  4662.       Corporation which makes applications pen-aware
  4663. --------n-6611-------------------------------
  4664. INT 66 - PenDOS - TDMOUSE.EXE - SET ??? HANDLER
  4665.     AH = 11h
  4666.     DX:BX -> new handler for ???
  4667. Return: CF clear
  4668.     AX = 0000h
  4669.     DX:BX -> old handler for ??? (points at RETF by default)
  4670. --------n-6612-------------------------------
  4671. INT 66 - PenDOS - TDMOUSE.EXE - INITIALIZE
  4672.     AH = 12h
  4673. Return:    CF clear
  4674.     AX = 0000h
  4675. Note:    this function calls the old mouse handler with functions 0000h, 0002h,
  4676.       0007h, 0008h, 000Fh, 0004h, and 000Ch (in that order)
  4677. SeeAlso: AH=13h
  4678. --------n-6613-------------------------------
  4679. INT 66 - PenDOS - TDMOUSE.EXE - SHUTDOWN???
  4680.     AH = 13h
  4681. Return: CF clear
  4682.     other register as returned by INT 33/AX=0000h
  4683. SeeAlso: AH=12h
  4684. --------n-6614-------------------------------
  4685. INT 66 - PenDOS - TDMOUSE.EXE - ???
  4686.     AH = 14h
  4687.     BX = ???
  4688.     CX = ???
  4689. Return: CF clear
  4690.     AX = 0000h
  4691. --------n-6615-------------------------------
  4692. INT 66 - PenDOS - TDMOUSE.EXE - SET ??? HANDLER
  4693.     AH = 15h
  4694.     DX:BX -> new handler for ???
  4695. Return: CF clear
  4696.     AX = 0000h
  4697.     DX:BX -> old handler (points at RETF by default)
  4698. --------n-6616-------------------------------
  4699. INT 66 - PenDOS - TDMOUSE.EXE - UNUSED FUNCTIONS
  4700.     AH = 16h to 1Fh
  4701. Return: CF set
  4702. Program: TDMOUSE is a PenDOS hardware driver which allows a mouse to emulate
  4703.       a touchpad; PenDOS is a set of programs by Communication Intelligence
  4704.       Corporation which makes applications pen-aware
  4705. --------n-6621-------------------------------
  4706. INT 66 - PenDOS - PINK - ???
  4707.     AH = 21h
  4708. Return: CF clear if successful
  4709.     CF set on error
  4710. Note:    this function sets ??? flag or counter (also set by AH=2Fh) to FFFFh
  4711. --------n-6622-------------------------------
  4712. INT 66 - PenDOS - PINK - ???
  4713.     AH = 22h
  4714.     DX:BX -> ???
  4715.     CL = ???
  4716. Return: CF clear if successful
  4717.     CF set on error
  4718.     ???
  4719. SeeAlso: AH=24h
  4720. --------n-6623-------------------------------
  4721. INT 66 - PenDOS - PINK - ???
  4722.     AH = 23h
  4723.     ???
  4724. Return: CF clear if successful
  4725.     CF set on error
  4726.     ???
  4727. --------n-6624-------------------------------
  4728. INT 66 - PenDOS - PINK - ???
  4729.     AH = 24h
  4730.     DX:BX -> ???
  4731.     CL = ???
  4732. Return: CF clear if successful
  4733.     CF set on error
  4734.     ???
  4735. SeeAlso: AH=22h
  4736. --------n-6625-------------------------------
  4737. INT 66 - PenDOS - PINK - ???
  4738.     AH = 25h
  4739.     CL = ??? (NOP if 00h)
  4740.     ???
  4741. Return: CF clear if successful
  4742.     CF set on error
  4743.     ???
  4744. --------n-6627-------------------------------
  4745. INT 66 - PenDOS - PINK - ???
  4746.     AH = 27h
  4747.     BL = ???
  4748.     BH = ???
  4749.     CL = ??? (0-3)
  4750.     DL = ??? (> BL)
  4751.     DH = ??? (> BH)
  4752. Return: ???
  4753. --------n-6628-------------------------------
  4754. INT 66 - PenDOS - PINK - ???
  4755.     AH = 28h
  4756.     ???
  4757. Return: CF clear if successful
  4758.     CF set on error
  4759.     ???
  4760. Note:    this function sets ??? flag or counter (also set by AH=2Fh) to FFFFh
  4761. --------n-6629-------------------------------
  4762. INT 66 - PenDOS - PINK - ???
  4763.     AH = 29h
  4764.     ???
  4765. Return: ???
  4766. Note:    this function sets ??? flag or counter (also set by AH=2Fh) to FFFFh
  4767. --------n-662A-------------------------------
  4768. INT 66 - PenDOS - PINK - ???
  4769.     AH = 2Ah
  4770.     DL = ??? (nonzero)
  4771.     DH = ??? (nonzero)
  4772. Return: CF clear if successful
  4773.     CF set on error
  4774.     ???
  4775. --------n-662B-------------------------------
  4776. INT 66 - PenDOS - PINK - ???
  4777.     AH = 2Bh
  4778.     ???
  4779. Return: CF clear if successful
  4780.     CF set on error
  4781.     ???
  4782. --------n-662F-------------------------------
  4783. INT 66 - PenDOS - PINK - INITIALIZE
  4784.     AH = 2Fh
  4785.     ???
  4786. Return: AX = status
  4787.         0000h failed
  4788.         FFFFh successful
  4789.     ???
  4790. Note:    this function sets ??? flag or counter to FFFFh and hooks INT 1Ch
  4791. --------F-663345-----------------------------
  4792. INT 66 - BitFax Scheduler - REMOVE TSR FROM MEMORY
  4793.     AX = 3345h
  4794. Return: AX = FFFFh error removing TSR
  4795. Note:    the installation check consists of checking for the signature
  4796.       "BitFax Scheduler" beginning two bytes past the interrupt handler
  4797. SeeAlso: AH=04h,INT 2F/AH=2Ah,INT 2F/AX=CB00h
  4798. Index:    installation check;BitFax Scheduler
  4799. --------n-6640-------------------------------
  4800. INT 66 - PenDOS - PKEYUS - GET VERSION
  4801.     AH = 40h
  4802. Return: CF clear
  4803.     AX = 0000h
  4804.     BH = major version (02h for version bundled with IBM DOS 6.1)
  4805.     BL = minor version (00h for version bundled with IBM DOS 6.1)
  4806.     DL = ??? (4Eh)
  4807.     DH = ??? (0Eh)
  4808. --------n-6641-------------------------------
  4809. INT 66 - PenDOS - PKEYUS - SET ???
  4810.     AH = 41h
  4811.     BX = ???
  4812.     CL = ??? (08h-20h)
  4813.     DL = screen column??? (<= 50h)
  4814.     DH = screen row???  (<= 3Ch)
  4815. Return: AX = status (0000h successful, 0001h error)
  4816. Note:    this function also sets an internal flag
  4817. SeeAlso: AH=42h,AH=43h
  4818. --------n-6642-------------------------------
  4819. INT 66 - PenDOS - PKEYUS - ???
  4820.     AH = 42h
  4821. Return: CF clear
  4822.     AX = 0000h
  4823. Note:    this function also clears the flag set by AH=41h
  4824. SeeAlso: AH=41h
  4825. --------n-6643-------------------------------
  4826. INT 66 - PenDOS - PKEYUS - ???
  4827.     AH = 43h
  4828.     BX = ???
  4829.     DX = ???
  4830. Return: AX = status
  4831.         0000h if AH=41h flag set
  4832.         else
  4833.         AH = ???
  4834.         AL = ???
  4835.         BX = ???
  4836.         DX = ???
  4837. SeeAlso: AH=41h
  4838. --------n-6644-------------------------------
  4839. INT 66 - PenDOS - PKEYUS - UNUSED FUNCTIONS
  4840.     AH = 44h to 4Fh
  4841. Return: CF set
  4842. --------n-6650-------------------------------
  4843. INT 66 - PenDOS - PMOUSE - SET ???
  4844.     AH = 50h
  4845.     BX = ???
  4846.     CH = ???
  4847.     DX = ???
  4848. Return: CF clear
  4849.     AX = 0000h
  4850. --------n-6651-------------------------------
  4851. INT 66 - PenDOS - PMOUSE - NOP
  4852.     AH = 51h
  4853. Return: CF set
  4854. --------n-6652-------------------------------
  4855. INT 66 - PenDOS - PMOUSE - ???
  4856.     AH = 52h
  4857.     BX = ???
  4858.     CL = ???
  4859.     DX = ???
  4860. Return: ???
  4861. --------n-6653-------------------------------
  4862. INT 66 - PenDOS - PMOUSE - UNUSED FUNCTIONS
  4863.     AH = 53h to 57h
  4864. Return: CF set
  4865. --------n-66---------------------------------
  4866. INT 66 - PenDOS - PMOUSE - ALTERNATE API
  4867.     AH = function (58h-5Fh)
  4868. Note:    these functions exactly duplicate AH=50h-57h
  4869. --------U-66AA02-----------------------------
  4870. INT 66 - HelpTSR v2.10 - INSTALLATION CHECK
  4871.     AX = AA02h
  4872. Return: ES:DI -> 7 byte signature "HelpTSR" if resident
  4873. Program: HelpTSR is a resident viewer by David Jurgens for HelpPC
  4874. --------n-66C5-------------------------------
  4875. INT 66 - PenDOS - VLOAD - API
  4876.     AH = C5h
  4877.     ???
  4878. Return: ???
  4879. --------t-66FFFBBXFFFB-----------------------
  4880. INT 66 - MicroHelp Stay-Res Plus - ???
  4881.     AX = FFFBh
  4882.     BX = FFFBh
  4883.     ???
  4884. Return: ???
  4885. SeeAlso: AX=FFFEh,INT 2D"AMIS"
  4886. --------t-66FFFEBXFFFE-----------------------
  4887. INT 66 - MicroHelp Stay-Res/Stay-Res Plus - UNINSTALL
  4888.     AX = FFFEh
  4889.     BX = FFFEh
  4890. Return: only if unsuccessful
  4891. Notes:    installation check is for the interrupt handler to begin with the bytes
  4892.       FBh 9Ch or 9Ch FAh, and the program name (not case-sensitive) to
  4893.       appear at offset 0005h (older versions) or the offset returned by
  4894.       AX=FFFFh/BX=FFF0h in the interrupt handler segment.
  4895.     Programs which use Stay-Res include ThesPlus (program name "THESPLUS")
  4896.       and Personal Calendar (program name "CAL") by Paul Mun~oz-Colman.
  4897. SeeAlso: AX=FFFBh,AX=FFFFh,INT 2D"AMIS"
  4898. Index:    installation check;MicroHelp Stay-Res|installation check;ThesPlus
  4899. Index:    installation check;Personal Calendar|installation check;CAL
  4900. --------t-66FFFFBXFFF0-----------------------
  4901. INT 66 - MicroHelp Stay-Res Plus - FIND PROGRAM NAME
  4902.     AX = FFFFh
  4903.     BX = FFF0h
  4904. Return: DI = offset of program name in interrupt handler segment
  4905. SeeAlso: AX=FFFBh,AX=FFFEh,INT 2D"AMIS"
  4906. --------d-67---------------------------------
  4907. INT 67 - Adaptec controllers - DRIVE 1 DATA
  4908. Desc:    this vector stores the last four bytes of the parameter table for
  4909.       hard disk 1
  4910. SeeAlso: INT 64"Adaptec",INT 65"Adaptec",INT 66"Adaptec"
  4911. --------b-67---------------------------------
  4912. INT 67 - TI Professional PC - SYSTEM DATA (NOT A VECTOR!)
  4913. Desc:    this vector contains the TI Pro's system configuration words
  4914.       (see #2651)
  4915. SeeAlso: INT 66"TI Professional PC"
  4916.  
  4917. Bitfields for TI Professional PC System Configuration doubleword:
  4918. Bit(s)    Description    (Table 2651)
  4919.  0    8087 present
  4920.  31-1    reserved (0)
  4921. --------d-67---------------------------------
  4922. INT 67 - Pdisk by Scott Garfinkle - Overwritten for Hard Drive information
  4923. SeeAlso: INT 64"Pdisk",INT 66"Pdisk"
  4924. --------I-67---------------------------------
  4925. INT 67 - Sangoma CCPOP 3270 resident module
  4926. SeeAlso: INT 61"Sangoma",INT 68"Sangoma"
  4927. --------U-67---------------------------------
  4928. INT 67 - CUCKOO.COM - INSTALLATION CHECK
  4929. Program: CUCKOO is a resident on-screen clock with optional hourly chime or
  4930.       cuckoo by an unknown author with revisions by Thomas A. Lundin
  4931. Note:    this is not a vector; when loaded for the first time, CUCKOO.COM uses
  4932.       the last unused (0000h:0000h) vector in the range 60h-67h to store
  4933.       the signature value 434Ch:4F4Bh ('CLOK')
  4934. ----------67---------------------------------
  4935. INT 67 - PC-DRAFT - KEYBOARD DRIVER
  4936.     ???
  4937. Return: ???
  4938. Program: PC-DRAFT is a powerful CAD environment by rhv.
  4939. SeeAlso: INT 62"PC-DRAFT",INT 64"PC-DRAFT",INT 65"PC-DRAFT",INT 66"PC-DRAFT"
  4940. --------N-6700-------------------------------
  4941. INT 67 - PC-NET, Alloy NTNX - LOCK SEMAPHORE AND WAIT
  4942.     AH = 00h
  4943.     DS:DX -> ASCIZ semaphore name (max 64 bytes)
  4944. Return: AL = status (see #2652)
  4945.     AH = semaphore owner if status=02h
  4946. SeeAlso: AH=01h,AH=02h"PC-NET",INT 7F/AH=00h
  4947.  
  4948. (Table 2652)
  4949. Values for PC-NET semaphore function status:
  4950.  00h    successful
  4951.  01h    invalid function
  4952.  02h    semaphore already locked
  4953.  03h    unable to lock semaphore
  4954.  04h    semaphore space exhausted
  4955. --------N-6701-------------------------------
  4956. INT 67 - PC-NET, Alloy NTNX - LOCK SEMAPHORE
  4957.     AH = 01h
  4958.     DS:DX -> ASCIZ semaphore name (max 64 bytes)
  4959. Return: AL = status (see #2652)
  4960.     AH = semaphore owner if status=02h
  4961. SeeAlso: AH=00h,AH=02h"PC-NET",INT 7F/AH=01h"Alloy"
  4962. --------N-6702-------------------------------
  4963. INT 67 - PC-NET, Alloy NTNX - UNLOCK SEMAPHORE
  4964.     AH = 02h
  4965.     DS:DX -> ASCIZ semaphore name (max 64 bytes)
  4966. Return: AL = status (see #2652)
  4967.     AH = semaphore owner if status=02h
  4968. SeeAlso: AH=00h,AH=01h"PC-NET",INT 7F/AH=02h
  4969. --------m-671E-------------------------------
  4970. INT 67 U - Qualitas 386MAX v7.00 - MEMLIMIT - INSTALLATION CHECK
  4971.     AH = 1Eh
  4972. Return: AH = 00h if installed
  4973.         AL destroyed
  4974.         ES:DI -> ASCII signature "MemLimit"
  4975. SeeAlso: AH=1Fh,INT 21/AX=4402h"386MAX"
  4976. --------m-671F-------------------------------
  4977. INT 67 U - Qualitas 386MAX v7.00 - MEMLIMIT - API
  4978.     AH = 1Fh
  4979.     DS:SI -> request packet (see #2653)
  4980. Return: AH = status (00h successful, 84h invalid function code, etc.)
  4981. SeeAlso: AH=1Eh
  4982.  
  4983. Format of 386MAX MEMLIMIT request packet:
  4984. Offset    Size    Description    (Table 2653)
  4985.  00h    WORD    function code (00h-0Fh)
  4986.  02h    WORD    return code (see #2654)
  4987.  04h  4 BYTEs    ???
  4988.  08h    WORD    ???
  4989.     ???
  4990.  
  4991. (Table 2654)
  4992. Values for 386MAX MEMLIMIT return code:
  4993.  00h    unknown request
  4994.  01h    invalid parameter for VCPI limit
  4995.  02h    VCPI limit set
  4996.  03h    invalid parameter for EMS limit
  4997.  04h    EMS limit set
  4998.  05h    DPMI disabled
  4999.  06h    XMS disabled
  5000.  07h    XMS limit set
  5001.  08h    unable to uninstall
  5002.  09h    unloaded
  5003. --------u-672833-----------------------------
  5004. INT 67 - Q87 v4+ - PREPARE TO UNLOAD AND GET XMS HANDLE FOR Q87 MEMORY
  5005.     AX = 2833h
  5006.     EAX = 29482833h (entire EAX value required)
  5007. Return: EAX = XMS handle for memory allocated when Q87 was installed
  5008.     EBX = status
  5009.         00000000h Q87 is in demo mode (countdown running);
  5010.               Q87 remains active
  5011.         00000001h Q87 is in registered mode; memory manager's IDT, GDT,
  5012.               and optionally CR0 (if BL <> 5Fh on entry) have
  5013.               been restored
  5014.         00000002h Q87 is in demo mode (demo time has expired);
  5015.               Q87 remains active
  5016. Note:    this call is used by UNLOAD87 to release the memory used by Q87
  5017. BUG:    v4.00-v4.03 will hang on most machines when run under bare DOS with
  5018.       no memory manager, because neither Q87 nor UNLOAD87 checks whether
  5019.       there is a valid INT 67 handler before performing an installation
  5020.       check via INT 67
  5021. SeeAlso: AX=4321h,INT 21/AX=4321h/EAX=87654321h
  5022. --------m-673F--CX5145-----------------------
  5023. INT 67 U - QEMM-386 v4.23+ - INSTALLATION CHECK
  5024.     AH = 3Fh
  5025.     CX = 5145h ("QE")
  5026.     DX = 4D4Dh ("MM")
  5027. Return: AH = 00h if installed
  5028.         ES:DI -> QEMM API entry point (see #2655,#2658,#2770)
  5029. Notes:    if no other program has hooked INT 67, an alternate installation
  5030.       check is to test for the string
  5031.       "QUARTERDECK EXPANDED MEMORY MANAGER 386" at offset 14h in the INT 67
  5032.       handler's segment; the word at offset 12h contains the offset in
  5033.       the handler's segment of the API entry point
  5034.     although this function is still undocumented, Quarterdeck has recently
  5035.       documented two alternate methods for determining the QEMM API entry
  5036.       point, as well as several of the API functions
  5037.     MICEMM (Micronics Expanded Memory Manager) versions 2.0C and 4D support
  5038.       the alternate QEMM installation check and entry point functions 00h,
  5039.       02h, and 03h; version 4D only provides the signature string if the
  5040.       commandline argument "DV" is provided
  5041.     386MAX v6.01 responds to this call, but DESQview 2.42 does not
  5042.       recognize the returned entry point as providing QEMM's capabilities
  5043.       because a) only functions 0Ch (different from QEMM 0Ch) and
  5044.             1000h-1009h are supported,
  5045.           b) status is returned as for EMS functions, not QEMM funcs
  5046.           c) the protected-mode entry point returned by function 1000h
  5047.             only supports functions 0Ch, 1004h, 1005h, and 100Ah
  5048.     the string check mentioned above is not supported by 386MAX
  5049. SeeAlso: AX=5BF0h,AH=DDh,AX=FFA5h,INT 15/AX=11DEh,INT 21/AX=4402h/SF=01h
  5050. SeeAlso: INT 21/AX=4402h"QEMM",INT 21/AX=4402h"386MAX",INT 2F/AX=D201h/BX=5145h
  5051.  
  5052. (Table 2655)
  5053. Values for calling QEMM "QPI_GetStatus" function:
  5054.     AH = 00h get QEMM state
  5055. Return: CF clear
  5056.     AL = QEMM state
  5057.         bit 0 set if QEMM turned OFF
  5058.         bit 1 set if in "Auto" mode
  5059. Note:    this function is officially documented
  5060. SeeAlso: #2656,#2657,#2658,#2770
  5061.  
  5062. (Table 2656)
  5063. Values for calling QEMM "QPI_SetStatus" function:
  5064.     AH = 01h set QEMM state
  5065.     AL = new state
  5066.         bit 0 set: place QEMM in OFF state
  5067. Return: CF clear if successful
  5068.     CF set on error
  5069. Note:    this function is officially documented
  5070. SeeAlso: #2655
  5071.  
  5072. (Table 2657)
  5073. Values for calling QEMM QPI function 02h:
  5074.     AH = 02h get ???
  5075. Return: CF clear
  5076.     AX = segment of ??? data structure
  5077.     Data Structure
  5078.     Offset    Size    Description
  5079.      00h    DWORD    page table entry for ???
  5080.         ???
  5081. SeeAlso: #2658
  5082.  
  5083. (Table 2658)
  5084. Values for calling QEMM "QPI_GetVersion" function:
  5085.     AH = 03h get QEMM version
  5086. Return: CF clear
  5087.     AX = BX = version in BCD
  5088. Notes:    this function is officially documented.     The most recent official docs
  5089.       state that the version is returned in both AX and BX; older
  5090.       documentation only mentions BX
  5091.     MICEMM returns AX=0001h, BX unchanged
  5092. SeeAlso: #2655,#2659
  5093.  
  5094. (Table 2659)
  5095. Values for calling QEMM QPI function 04h:
  5096.     AH = 04h allocate 4K page and set AUTO/ON mode
  5097. Return: CF clear if successful
  5098.         DX = page number of a 4K page
  5099.     CF set if unable to allocate page
  5100. Note:    QEMM mode unchanged if not AUTO/OFF
  5101. SeeAlso: #2660
  5102.  
  5103. (Table 2660)
  5104. Values for calling QEMM QPI function 05h:
  5105.     AH = 05h free 4K page and turn QEMM off
  5106.     DX = page number returned by function 04h
  5107. Return: CF clear
  5108. Note:    QEMM mode unchanged if not AUTO/ON
  5109. SeeAlso: #2659,#2661
  5110.  
  5111. (Table 2661)
  5112. Values for calling QEMM QPI function 06h:
  5113.     AH = 06h make new mapping context???
  5114.     DX = page number of 4K page to hold page table
  5115. Return: CF clear
  5116. Note:    copies page table into given page and then sets ??? page table entry
  5117.       to point at copy
  5118. SeeAlso: #2662,#2663
  5119.  
  5120. (Table 2662)
  5121. Values for calling QEMM QPI function 07h:
  5122.     AH = 07h get mapping context
  5123. Return: CF clear
  5124.     DX = page number of page table for current mapping context
  5125. SeeAlso: #2658,#2661,#2663
  5126.  
  5127. (Table 2663)
  5128. Values for calling QEMM QPI function 08h:
  5129.     AH = 08h set mapping context???
  5130.     DX = linear page number of page table
  5131. Return: CF clear
  5132. SeeAlso: #2658,#2661,#2662,#2664,#2666
  5133.  
  5134. (Table 2664)
  5135. Values for calling QEMM QPI function 09h:
  5136.     AH = 09h get linear page number for page table entry
  5137.     CX = page table index
  5138. Return: CF clear
  5139.     DX = linear page number
  5140. SeeAlso: #2665
  5141.  
  5142. (Table 2665)
  5143. Values for calling QEMM QPI function 0Ah:
  5144.     AH = 0Ah set linear page number for page table entry
  5145.     CX = page table index
  5146.     DX = linear page number
  5147. Return: CF clear
  5148. SeeAlso: #2664
  5149.  
  5150. (Table 2666)
  5151. Values for calling QEMM QPI function 0Bh:
  5152.     AH = 0Bh map 4K pages
  5153.     BX = number of pages
  5154.     CX = first page number (must be 0100h to allocate HMA)
  5155.     DX = EMS handle (memory belonging to EMS handle will be mapped
  5156.           into the address space beginning with the first page
  5157.           allocated to the handle)
  5158. Return: AH = 00h
  5159. SeeAlso: #2663,#2667
  5160.  
  5161. (Table 2667)
  5162. Values for calling QEMM QPI function 0Ch:
  5163.     AH = 0Ch get available memory
  5164. Return: CF clear
  5165.     BX = 0001h
  5166.     CX = total 4K pages???
  5167.     DX = number of 4K pages free
  5168. SeeAlso: #2666,#2668
  5169.  
  5170. (Table 2668)
  5171. Values for calling QEMM QPI function 0Dh:
  5172.     AH = 0Dh CRT controller I/O port trapping
  5173.     AL = mode
  5174.         00h only trap on I/O ports 03C0h-03C5h, 03C7h, 03CAh-03CFh
  5175.         01h trap on ports 03B4h, 03B5h, 03B8h, 03C6h, 03C8h, 03C9h,
  5176.           03D4h, and 03D5h
  5177.         02h only trap on I/O ports 03C6h, 03C8h, and 03C9h
  5178. Return: CF clear
  5179.  
  5180. (Table 2669)
  5181. Values for calling QEMM QPI function 0Eh:
  5182.     AH = 0Eh set cursor virtualization callbacks
  5183.     DS:BX -> FAR routine for getting hardware cursor address
  5184.     ES:DX -> FAR routine for setting hardware cursor address
  5185. Return: CF clear
  5186. Note:    both callbacks are invoked with CL indicating which
  5187.       CRT controller register to access (0Eh for high
  5188.       byte of cursor address, 0Fh for low byte)
  5189.     the DS:BX callback should return BX=cursor address;
  5190.       ES:DX is called with BL or BH (depending on CL)
  5191.       set to the appropriate half of the cursor's address
  5192.  
  5193. (Table 2670)
  5194. Values for calling QEMM QPI function 0Fh:
  5195.     AH = 0Fh unmap 4K pages
  5196.     CX = first page number
  5197.     DX = number of pages
  5198. Return: CF clear
  5199.     AL = 00h/01h if ???
  5200. Note:    if CX=0100h and DX=0010h, the HMA is remapped to
  5201.       simulate a disabled A20
  5202.  
  5203. (Table 2671)
  5204. Values for calling QEMM QPI function 1000h:
  5205.     AX = 1000h get protected-mode interface
  5206.     DS:SI -> 16-byte buffer for two GDT entries
  5207.     ES:DI -> buffer for 4K page table
  5208. Return: CF clear
  5209.     EAX = offset of protected-mode API entry point
  5210.     DS:SI buffer filled with two GDT descriptors
  5211.         first is QEMM code segment, second is data???
  5212.     ES:DI buffer filled with 4K page table
  5213.     DI points to first unused page table entry
  5214. SeeAlso: INT 67/AX=DE01h
  5215.  
  5216. (Table 2672)
  5217. Values for calling QEMM QPI function 1001h:
  5218.     AX = 1001h get CPU debug registers
  5219.     ES:DI -> buffer for debug registers (8 DWORDs)
  5220. Return: CF clear
  5221.     BL = INT01 handling (see function 1002h)
  5222.     ES:DI buffer filled
  5223.  
  5224. (Table 2673)
  5225. Values for calling QEMM QPI function 1002h:
  5226.     AX = 1002h set CPU debug registers
  5227.     BL = INT01 handling
  5228.         00h     reflect all debugging exceptions as V86-mode INT 01's
  5229.         else convert debugging exceptions other than single-step
  5230.           into V86-mode INT 03's, single-step to INT 01's
  5231.     ES:DI -> buffer containing debug registers (8 DWORDs)
  5232. Return: CF clear
  5233. Notes:    identical to INT 67/AX=DE09h if BL=01h
  5234.     the INT01 handling flag is set to 01h by the general-protection
  5235.       violation handler for certain privileged instructions
  5236.  
  5237. (Table 2674)
  5238. Values for calling QEMM QPI function 1003h:
  5239.     AX = 1003h get machine status word CR0
  5240. Return: CF clear
  5241.     EAX = contents of CR0
  5242. SeeAlso: INT 67/AX=DE07h
  5243.  
  5244. (Table 2675)
  5245. Values for calling QEMM QPI function 1004h:
  5246.     AX = 1004h allocate a 4K page
  5247. Return: CF clear if successful
  5248.         EDX = linear address of allocated page
  5249.     CF set on error
  5250. SeeAlso: INT 67/AX=DE04h
  5251.  
  5252. (Table 2676)
  5253. Values for calling QEMM QPI function 1005h:
  5254.     AX = 1005h free 4K page
  5255.     EDX = linear address of page to free
  5256. Return: CF clear
  5257. SeeAlso: INT 67/AX=DE05h
  5258.  
  5259. (Table 2677)
  5260. Values for calling QEMM QPI function 1006h:
  5261.     AX = 1006h NOP
  5262. Return: CF set
  5263.  
  5264. (Table 2678)
  5265. Values for calling QEMM QPI function 1007h:
  5266.     AX = 1007h get maximum physical memory address
  5267. Return: CF clear
  5268.     EDX = physical address of highest 4K memory page
  5269. SeeAlso: INT 67/AX=DE02h
  5270.  
  5271. (Table 2679)
  5272. Values for calling QEMM QPI function 1008h:
  5273.     AX = 1008h get physical address of page in first megabyte
  5274.     CX = page number (linear address shifted right 12 bits)
  5275. Return: CF clear
  5276.     EDX = linear address of page
  5277. SeeAlso: function 1F00h
  5278.  
  5279. (Table 2680)
  5280. Values for calling QEMM QPI function 1009h:
  5281.     AX = 1009h switch to protected mode
  5282.     ESI = linear address in first megabyte of system reg values
  5283.           (see INT 67/AX=DE0Ch)
  5284.     interrupts disabled
  5285. Return: interrupts disabled
  5286.     GDTR, IDTR, LDTR, TR loaded
  5287.     SS:ESP must have at least 16 bytes space, and the
  5288.           entry point is required to set up a new stack
  5289.           before enabling interrupts
  5290.     EAX, ESI, DS, ES, FS, GS destroyed
  5291.  
  5292. (Table 2681)
  5293. Values for calling QEMM QPI function 100Ah:
  5294.     AX = 100Ah switch back to virtual-86 mode
  5295.     DS = selector for data segment from function 1000h
  5296.     SS:ESP in first megabyte of linear memory
  5297.     interrupts disabled
  5298.     STACK:    QWORD  return address from FAR call to 32-bit segment
  5299.         DWORD  EIP
  5300.         DWORD  CS
  5301.         DWORD  reserved for EFLAGS
  5302.         DWORD  ESP
  5303.         DWORD  SS
  5304.         DWORD  ES
  5305.         DWORD  DS
  5306.         DWORD  FS
  5307.         DWORD  GS
  5308.     will switch to virtual86 mode with interrupts disabled, all
  5309.       segment registers loaded, and EAX destroyed.
  5310.  
  5311. (Table 2682)
  5312. Values for calling QEMM QPI function 11h:
  5313.     AH = 11h get memory type map
  5314.     AL = zero/nonzero ??? (set by QEMM.COM but apparently ignored
  5315.           by QEMM 6.00)
  5316.     ES:DI -> 256-byte buffer for memory types
  5317. Return: CF clear
  5318.     BL = ???
  5319.     ES:DI buffer filled
  5320. Note:    each byte of the buffer corresponds to a 4K page, and
  5321.       contains the type of that page: 00h = mappable,
  5322.       02h = mapped ROM, 03h = high RAM, 04h = excluded,
  5323.       05h = video, 06h = ROM, 07h = adapter ROM,
  5324.       08h = split ROM, 09h = page frame, 0Ah = RAMmable,
  5325.       0Bh = conventional, 83h = high RAM under MS Windows
  5326.  
  5327. (Table 2683)
  5328. Values for calling QEMM QPI function 12h:
  5329.     AH = 12h get HIRAM chain
  5330. Return: CF clear
  5331.     BX = segment of first MCB in high memory
  5332.         0000h if no high memory
  5333.  
  5334. (Table 2684)
  5335. Values for calling QEMM QPI function 1300h:
  5336.     AX = 1300h VIDRAMEGA???
  5337.     BL = 00h copy ???
  5338.          nonzero copy ??? (reverse)
  5339. Return: CF clear
  5340.     AL = status
  5341.         00h if all pages clean
  5342.         01h if any page dirty
  5343.  
  5344. (Table 2685)
  5345. Values for calling QEMM QPI function 1301h:
  5346.     AX = 1301h check if pages modified
  5347.     DX:DI = start address of range to check
  5348.     CX = length of range in paragraphs
  5349. Return: CF clear
  5350.     CX = status
  5351.         0000h none of the indicated pages is dirty
  5352.         DI destroyed
  5353.         1000h one or more pages is dirty
  5354.         DI = low word of first dirty page's linear addr
  5355.  
  5356. (Table 2686)
  5357. Values for calling QEMM QPI function 1302h:
  5358.     AX = 1302h ???
  5359.     BL = ???
  5360.     BH = ???
  5361.     CX = ???
  5362.     SI = offset of ???
  5363.     DI = offset of ???
  5364.     ???
  5365. Return: CF clear
  5366.     ???
  5367. Note:    disables certain interrupts at the two 8259 PICs during
  5368.       execution; also modifies CRT controller during
  5369.       execution under certain circumstances
  5370.  
  5371. (Table 2687)
  5372. Values for calling QEMM QPI function 1303h:
  5373.     AX = 1303h initialize EGA graphics virtualization
  5374.     BX = number of pages (less 1) of EMS to allocate
  5375. Return: CF clear if successful
  5376.         DX = EMS handle
  5377.     CF set on error
  5378.  
  5379. (Table 2688)
  5380. Values for calling QEMM QPI function 1304h:
  5381.     AX = 1304h shutdown EGA graphics virtualization
  5382.     DX = EMS handle being used for virtualization
  5383. Return: CF clear
  5384.  
  5385. (Table 2689)
  5386. Values for calling QEMM QPI function 1305h:
  5387.     AX = 1305h select portion of EGA graphics to virtualize???
  5388.     (related to graphics virtualization, changes memory mappings)
  5389.     CX = start offset within A000h segment of virtualized mem???
  5390. Return: CF clear
  5391. Note:    disables certain interrupts at the two 8259 PICs during
  5392.       execution (see func 130Ch) and runs inside a QEMM
  5393.       critical section
  5394.  
  5395. (Table 2690)
  5396. Values for calling QEMM QPI function 1306h:
  5397.     AX = 1306h set DESQview critical section counter address
  5398.     ES:BX -> WORD DESQview critical section counter or 0000h:0000h
  5399. Return: CF clear
  5400. Note:    also sets a pointer in the low-memory part of QEMM to
  5401.       the current value of INT 15 if ES:BX not 0000h:0000h
  5402.  
  5403. (Table 2691)
  5404. Values for calling QEMM QPI function 1307h:
  5405.     AX = 1307h ??? (changes memory mappings for entire A000h segment)
  5406. Return: CF clear
  5407. Note:    disables certain interrupts at the two 8259 PICs during
  5408.       execution (see func 130Ch) and runs inside a QEMM
  5409.       critical section
  5410.  
  5411. (Table 2692)
  5412. Values for calling QEMM QPI function 1308h:
  5413.     AX = 1308h start/reset CRT controller I/O trapping
  5414.     BL = subfunction
  5415.         00h restore CRTC I/O port trapping to previous state
  5416.         else start trapping all accesses to I/O ports 03B0-03DF
  5417. Return: CF clear
  5418. Note:    if called more than once in a row with BL nonzero, the
  5419.       original state of the I/O port trapping will be lost
  5420.  
  5421. (Table 2693)
  5422. Values for calling QEMM QPI function 1309h:
  5423.     AX = 1309h Hercules mode-change support
  5424.     ES:BX -> new address for Hercules mode-change callback
  5425. Return: CF clear
  5426. Note:    the callback function is called whenever the CRTC mode
  5427.       register is written, with AL set to the value written
  5428.  
  5429. (Table 2694)
  5430. Values for calling QEMM QPI function 130Ah:
  5431.     AX = 130Ah virtualize EGA/VGA DAC registers (I/O ports 03C8h/03C9h)
  5432.     CX:DX -> DAC register virtualization buffer (see #2777)
  5433.         or 0000h:0000h to disable
  5434. Return: CF clear
  5435.  
  5436. (Table 2695)
  5437. Values for calling QEMM QPI function 130Bh:
  5438.     AX = 130Bh ???
  5439.     BL = ??? (??? or 00h)
  5440. Return: CF clear
  5441.     ???
  5442. Note:    calls AX=130Eh in some cases
  5443.  
  5444. (Table 2696)
  5445. Values for calling QEMM QPI function 130Ch:
  5446.     AX = 130Ch set interrupts to mask
  5447.     BX = interrupts to mask out during AX=1302h,AX=1307h,AX=1308h,
  5448.           AX=130Dh,AX=1310h (BL = master PIC, BH = slave PIC)
  5449. Return: CF clear
  5450.  
  5451. (Table 2697)
  5452. Values for calling QEMM QPI function 130Dh:
  5453.     AX = 130Dh map EGA memory at A0000h
  5454.     ???
  5455. Return: CF clear
  5456. Note:    disables certain interrupts at the two 8259 PICs during execution
  5457.       (see #2696) and runs inside a QEMM critical section
  5458.     calls AX=1307h (see #2691)
  5459.  
  5460. (Table 2698)
  5461. Values for calling QEMM QPI function 130Eh:
  5462.     AX = 130Eh ??? (modifies CRT controller setup)
  5463.     ???
  5464. Return: CF clear
  5465.  
  5466. (Table 2699)
  5467. Values for calling QEMM QPI function 130Fh:
  5468.     AX = 130Fh reset ???
  5469. Return: CF clear
  5470.  
  5471. (Table 2700)
  5472. Values for calling QEMM QPI function 1310h:
  5473.     AX = 1310h copy modified pages to physical video RAM???
  5474.     ???
  5475. Return: CF clear
  5476. Note:    disables certain interrupts at the two 8259 PICs during execution
  5477.       (see #2696) and runs inside a QEMM critical section
  5478.     also calls AX=130Dh (see #2697)
  5479.  
  5480. (Table 2701)
  5481. Values for calling QEMM QPI function 1311h:
  5482.     AX = 1311h set ???
  5483.     BL = zero/nonzero???
  5484. Return: CF clear
  5485. Note:    certain operations will be performed with interrupts
  5486.       (as set by AX=130Ch) enabled rather than disabled if
  5487.       called with BL nonzero
  5488.  
  5489. (Table 2702)
  5490. Values for calling QEMM QPI function 1312h:
  5491.     AX = 1312h (v6.02) NOP???
  5492. Note:    called by DV 2.42, but appears to be a NOP in QEMM 6.02
  5493.  
  5494. (Table 2703)
  5495. Values for calling QEMM QPI function 1400h:
  5496.     AX = 1400h initialize DESQview "protection level" support
  5497.     ES:DI -> protection level configuration (at least 24 bytes)
  5498.         (see #2771)
  5499.     BL = highest ??? to return (one less than number of words)
  5500. Return: CF clear
  5501.     AX = ??? (4204h for v6.00)
  5502. Note:    QEMM also sets the protected mode INT 02 and INT 06
  5503.       vectors to alternate handlers in certain cases
  5504.  
  5505. (Table 2704)
  5506. Values for calling QEMM QPI function 1401h:
  5507.     AX = 1401h turn off DESQview protection level support
  5508.         Return: CF clear
  5509.             ???
  5510.         Notes:    clears the DV critical-section flag address set with
  5511.               function 1306h
  5512.             QEMM also sets the protected mode INT 02 and INT 06
  5513.               vectors to the default handlers if they had been
  5514.               revectored by function 1400h
  5515.  
  5516. (Table 2705)
  5517. Values for calling QEMM QPI function 1402h:
  5518.     AX = 1402h set protection level???
  5519.         BL = protection level???
  5520.             00h NOP
  5521.             01h ???
  5522.             02h ???
  5523.             other (03h) ???
  5524.         ES:DI -> ???
  5525.         Return: CF clear
  5526.             ???
  5527.         Format of Data structure:
  5528.         Offset    Size    Description
  5529.          00h    WORD    segment of ??? (X, word at X:0136h set to X)
  5530.          02h    WORD    segment of ??? (word at X:0124h set to this)
  5531.          04h    WORD    number of paragraphs of ???
  5532.          06h  3 WORDs    ??? (copied to X:0000h)
  5533.          0Ch    WORD    ???
  5534.  
  5535. (Table 2706)
  5536. Values for calling QEMM QPI function 1403h:
  5537.     AX = 1403h add ??? to end of list and ??? (execute func 1406h)
  5538.         ES:DI -> ??? structure added to end of ??? list
  5539.             (at least 31 bytes, DWORD at offset 06h used for
  5540.              storing pointer to next struc, WORD at offset 00h
  5541.              seems to be a key or index)
  5542.         Return: CF clear
  5543.  
  5544. (Table 2707)
  5545. Values for calling QEMM QPI function 1404h:
  5546.     AX = 1404h NOP
  5547.         Return: CF clear
  5548.  
  5549. (Table 2708)
  5550. Values for calling QEMM QPI function 1405h:
  5551.     AX = 1405h remove ??? from ??? list
  5552.         BX = key???
  5553.         Return: CF clear
  5554.  
  5555. (Table 2709)
  5556. Values for calling QEMM QPI function 1406h:
  5557.     AX = 1406h ???
  5558.         ???
  5559.         Return: CF clear
  5560.             ???
  5561.         Notes:    this function is a NOP unless protection level 2 or 3
  5562.               is active
  5563.             when not a NOP, one of the actions is to write-protect
  5564.               certain memory pages
  5565.  
  5566. (Table 2710)
  5567. Values for calling QEMM QPI function 1407h:
  5568.     AX = 1407h ???
  5569.         ???
  5570.         Return: CF clear
  5571.             ???
  5572.         Note:    same as function 1406h, but only does anything if
  5573.               protection level 2 is active
  5574.  
  5575. (Table 2711)
  5576. Values for calling QEMM QPI function 1408h:
  5577.     AX = 1408h unprotect???
  5578.         ???
  5579.         Return: CF clear
  5580.             ???
  5581.  
  5582. (Table 2712)
  5583. Values for calling QEMM QPI function 1409h:
  5584.     AX = 1409h abort program causing protection violation???
  5585.         ???
  5586.         Return: CF clear
  5587.             ???
  5588.  
  5589. (Table 2713)
  5590. Values for calling QEMM QPI function 140Ah:
  5591.     AX = 140Ah set ???
  5592.         BX = index of ???
  5593.         Return: CF clear
  5594.             ???
  5595.         Notes:    no range checking is performed on BX
  5596.             this function is a NOP unless protection level 3 active
  5597.  
  5598. (Table 2714)
  5599. Values for calling QEMM QPI function 140Bh:
  5600.     AX = 140Bh get ???
  5601.         BX = index of ???
  5602.         SI = 0000h
  5603.         Return: CF clear
  5604.             SI = segment of 256-byte buffer??? or 0000h
  5605.         Notes:    no range checking is performed on BX
  5606.             this function is a NOP unless protection level 3 active
  5607.  
  5608. (Table 2715)
  5609. Values for calling QEMM QPI function 15h:
  5610.     AH = 15h set timer channel 0 virtualization buffer
  5611.         ES:BX -> WORD buffer for timer channel 0 divisor
  5612.             0000h:0000h to disable virtualization
  5613.         Return: CF clear
  5614.  
  5615. (Table 2716)
  5616. Values for calling QEMM v5.00+ QPI function 1600h:
  5617.     AX = 1600h get memory access status
  5618.         ES:DI -> 256-byte buffer
  5619.         Return: ES:DI buffer filled
  5620.         Note:    each byte of the buffer indicates the status of a 4K
  5621.               page (bit 0 set if read, bit 1 set if written)
  5622.  
  5623. (Table 2717)
  5624. Values for calling QEMM v5.00+ QPI function 1601h:
  5625.     AX = 1601h set memory access status
  5626.         ES:DI -> 256-byte buffer containing access statuses (see #2716)
  5627.  
  5628. (Table 2718)
  5629. Values for calling QEMM v5.00+ QPI function 17h:
  5630.     AH = 17h get memory usage statistics
  5631.         ES:DI -> 81-byte buffer for memory statistics (see #2775)
  5632.         Return: CF clear
  5633.  
  5634. (Table 2719)
  5635. Values for calling QEMM v5.11+ QPI function 18h:
  5636.     AH = 18h check whether conventional memory mapped into address range
  5637.         ES:BX = starting address
  5638.         CX = number of 4K pages
  5639.         Return: CF clear
  5640.             AL = 00h one or more pages is remapped
  5641.                  01h all pages in range are conventional memory
  5642.                 (physical address == virtual address)
  5643.  
  5644. (Table 2720)
  5645. Values for calling QEMM v5.11+ QPI function 19h:
  5646.     AH = 19h NOP
  5647.         Return: CF set
  5648.  
  5649. (Table 2721)
  5650. Values for calling QEMM v5.11+ "QPI_UntrappedIORead" function:
  5651.     AX = 1A00h get byte from I/O port
  5652.     DX = port number
  5653. Return: CF clear
  5654.     BL = port value
  5655. Note:    this function was officially documented with the release of QEMM 7.50
  5656.  
  5657. (Table 2722)
  5658. Values for calling QEMM v5.11+ "QPI_UntrappedIOWrite" function:
  5659.     AX = 1A01h send byte to I/O port
  5660.     BL = value to send
  5661.     DX = port number
  5662. Return: CF clear
  5663. Note:    this function was officially documented with the release of QEMM 7.50
  5664.  
  5665. (Table 2723)
  5666. Values for calling QEMM v5.11+ "QPI_UntrappedIOReadIndexed" function:
  5667.     AX = 1A02h
  5668.     BH = index value to send
  5669.     DX = base port number
  5670. Return: CF clear
  5671.     BL = value read from I/O port (DX+1)
  5672. Note:    this function was officially documented with the release of QEMM 7.50
  5673.  
  5674. (Table 2724)
  5675. Values for calling QEMM v5.11+ "QPI_UntrappedIOWriteIndexed" function:
  5676.     AX = 1A03h send bytes to two consecutive I/O ports
  5677.     BH = value for first I/O port (DX)
  5678.     BL = value for second I/O port (DX+1)
  5679.     DX = base port number
  5680. Return: CF clear
  5681. Note:    this function was officially documented with the release of QEMM 7.50
  5682.  
  5683. (Table 2725)
  5684. Values for calling QEMM v7.03+ "QPI_UntrappedIO" function:
  5685.     AX = 1A04h
  5686.     BX = value to write to port
  5687.     CX = direction and size
  5688.         bit 2: output instead of input
  5689.         bit 3: word instead of byte
  5690.     DX = I/O port to be accessed
  5691. Return: CF clear
  5692.     BX = value read (if CX indicates read)
  5693. Note:    this function was officially documented with the release of QEMM 7.50
  5694.  
  5695. (Table 2726)
  5696. Values for calling QEMM v7.03+ function 1A05h
  5697.     AX = 1A05h
  5698.     ???
  5699. Return: ???
  5700.  
  5701. (Table 2727)
  5702. Values for calling QEMM v7.03+ "QPI_GetIOCallback" function:
  5703.     AX = 1A06h
  5704. Return: CF clear
  5705.     ES:DI -> current I/O callback function
  5706. Note:    this function was officially documented with the release of QEMM 7.50
  5707.  
  5708. (Table 2728)
  5709. Values for calling QEMM v7.03+ "QPI_SetIOCallback" function:
  5710.     AX = 1A07h
  5711.     ES:DI -> new I/O callback function (see #2729)
  5712. Return: CF clear
  5713. Note:    this function was officially documented with the release of QEMM 7.50
  5714.  
  5715. (Table 2729)
  5716. Values QEMM v7.03+ I/O callback function is called with:
  5717.     AL/AX = data to/from trapped port
  5718.     CL = I/O direction (00h = IN instruction, else OUT instruction)
  5719.     DX = I/O port address
  5720. Return: CF clear if port handled by callback function
  5721.     CF set if not handled
  5722.     all other registers returned to application executing the IN or OUT
  5723.       instruction (allowing arbitrary changes to port address, data value,
  5724.       etc.)
  5725. SeeAlso: #2728
  5726.  
  5727. (Table 2730)
  5728. Values for calling QEMM v7.03+ "QPI_GetPortTrap" function:
  5729.     AX = 1A08h
  5730.     DX = I/O port number
  5731. Return: CF clear
  5732.     BL = trapping state (00h not being trapped, 01h trap installed)
  5733. Note:    this function was officially documented with the release of QEMM 7.50
  5734.  
  5735. (Table 2731)
  5736. Values for calling QEMM v7.03+ "QPI_SetPortTrap" function:
  5737.     AX = 1A09h
  5738.     DX = I/O port number
  5739. Return: CF clear
  5740. Note:    this function was officially documented with the release of QEMM 7.50
  5741.  
  5742. (Table 2732)
  5743. Values for calling QEMM v7.03+ "QPI_ClearPortTrap" function:
  5744.     AX = 1A0Ah
  5745.     DX = I/O port number
  5746. Return: CF clear
  5747. Note:    this function was officially documented with the release of QEMM 7.50
  5748.  
  5749. (Table 2733)
  5750. Values for calling QEMM v5.11+ QPI function 1B00h:
  5751.     AX = 1B00h get EMM Import Structure address
  5752.     ES:DI -> buffer for EMM import data structure (see #2773)
  5753. Return: CF set on error
  5754.     CF clear if successful
  5755. SeeAlso: INT 21/AX=4402h/SF=01h
  5756.  
  5757. (Table 2734)
  5758. Values for calling QEMM v5.11+ QPI function 1B01h:
  5759.     AX = 1B01h disable V86 mode
  5760. Return: CF set on error
  5761.         (i.e. no Global EMM Import rec. allocated)
  5762.     CF clear if successful
  5763. Note:    shuts down EMS and initializes Global EMM Import record; this function
  5764.       is invoked from the callback supplied by INT 2F/AX=1605h
  5765.  
  5766. (Table 2735)
  5767. Values for calling QEMM v5.11+ QPI function 1B02h:
  5768.     AX = 1B02h enable V86 mode
  5769. Return: CF set on error
  5770.     CF clear if successful
  5771. Note:    restarts EMS and frees Global EMM Import record; this function is
  5772.       invoked from the callback supplied by INT 2F/AX=1605h
  5773.  
  5774. (Table 2736)
  5775. Values for calling QEMM v5.11+ QPI function 1B03h:
  5776.     AX = 1B03h MS Windows initializing
  5777.     CX = segment from which Windows init broadcast made???
  5778.     DX = Windows startup flags
  5779.     DI = Windows version number (major in upper byte)
  5780. Return: CF clear if successful
  5781.         DS:SI -> V86 mode enable/disable callback
  5782.           (see #1876 at INT 2F/AX=1605h)
  5783.         ES:BX -> startup info structure (see #1873 at INT 2F/AX=1605h)
  5784.     CF set on error (unable to start Windows)
  5785. SeeAlso: INT 2F/AX=1605h
  5786.  
  5787. (Table 2737)
  5788. Values for calling QEMM v5.11+ QPI function 1B04h:
  5789.     AX = 1B04h MS Windows terminating
  5790. Return: CF clear
  5791.  
  5792. (Table 2738)
  5793. Values for calling QEMM v5.11+ QPI function 1B05h:
  5794.     AX = 1B05h determine whether program is driver
  5795.     DS:DX -> ASCIZ filename
  5796. Return: CF clear
  5797.     AL = status
  5798.         01h if string ends in ".DRV"
  5799.         FFh if string ends in "GDI.EXE"
  5800.         00h otherwise
  5801. Note:    when MS Windows 3.0 standard mode starts, QEMM patches all drivers
  5802.       until GDI.EXE is loaded
  5803.  
  5804. (Table 2739)
  5805. Values for calling QEMM v5.11+ QPI function 1B06h:
  5806.     AX = 1B06h patch protected-mode check in Windows driver
  5807.     CX = length of data pointed at by DS:DX
  5808.     DS:DX -> buffer containing Windows driver code
  5809. Return: CF clear
  5810. Note:    patches all SMSW x/TEST x,1 instruction sequences into MOV x,CS/VERW x
  5811.       sequences, which has the effect that the protected-mode check will
  5812.       only indicate protected mode in native protected mode and not in V86
  5813.       mode
  5814.  
  5815. (Table 2740)
  5816. Values for calling QEMM v5.11+ QPI function 1B07h:
  5817.     AX = 1B07h
  5818. BUG: QEMM 6.00-7.01 accept this and branch randomly
  5819.  
  5820. (Table 2741)
  5821. Values for calling QEMM v5.11+ QPI function 1Bxxh:
  5822.     AX = 1B08h to 1BFFh
  5823. Return: CF set
  5824.  
  5825. (Table 2742)
  5826. Values for calling QEMM v5.11+ QPI function 1C00h:
  5827.     AX = 1C00h disable IRQ0-7 calldowns
  5828. Return: CF clear
  5829.  
  5830. (Table 2743)
  5831. Values for calling QEMM v5.11+ QPI function 1C01h:
  5832.     AX = 1C01h set V86-mode IRQ0-7 handlers
  5833.     ES:DI -> 8 DWORDs containing V86-mode handler addresses
  5834. Return: CF clear
  5835.  
  5836. (Table 2744)
  5837. Values for calling QEMM v5.11+ QPI function 1C02h:
  5838.     AX = 1C02h disable IRQ8-15 handlers
  5839. Return: CF clear
  5840.  
  5841. (Table 2745)
  5842. Values for calling QEMM v5.11+ QPI function 1C03h:
  5843.     AX = 1C03h set V86-mode IRQ8-15 handlers
  5844.     ES:DI -> 8 DWORDs containing V86-mode handler addresses
  5845. BUG:    although the jump table only contains four entries, QEMM 6.00 will
  5846.       attempt to use it for any value of AL between 00h and 2Ah, thus
  5847.       branching unpredictably for AL=04h-2Ah; QEMM v7.01 behaves
  5848.       similarly for AL=04h-1Bh
  5849. Note:    when enabled, the appropriate IRQs are reflected back to the specified
  5850.       handlers in virtual-86 mode after the CPU automatically invokes the
  5851.       protected-mode handler inside QEMM
  5852.  
  5853. (Table 2746)
  5854. Values for calling QEMM v7.03+ "QPI_SimulateHWInt" function:
  5855.     AX = 1C04h
  5856.     BX = number of interrupt to simulate
  5857. Return: ???
  5858. Notes:    this function will allow proper simulation of a hardware interrupt
  5859.       under DESQview and DESQview/X, where the correct interrupt handler
  5860.       may be in a different process with a completely different address
  5861.       space
  5862.     this function was officially documented with the release of QEMM v7.50
  5863.  
  5864. (Table 2747)
  5865. Values for calling QEMM v6.0x only QPI function 1D00h:
  5866.     AX = 1D00h switch to pre-Stealth interrupt vector table
  5867. Return: CF clear if supported (QEMM v6.x)
  5868.     CF set if not supported (QEMM v7+)
  5869. Notes:    also switches VGA Save table pointer (0040h:00A8h) and overwrites the
  5870.       vectors currently assigned for use by the two interrupt controllers
  5871.       (see INT 67/AX=DE0Ah) with the vectors for INT 08-0F and 70-77 (to
  5872.       avoid crashing the system).
  5873.     functions 1Dxxh are not supported by QEMM v7.01, and always return CF
  5874.       set
  5875.  
  5876. (Table 2748)
  5877. Values for calling QEMM v6.0x only QPI function 1D01h:
  5878.     AX = 1D01h restore user interrupt vector table
  5879. Return: CF clear if supported (QEMM v6.x)
  5880.     CF set if not supported (QEMM v7+)
  5881. Notes:    interrupts should be disabled around the AX=1D00h and AX=1D01h calls
  5882.       because QEMM does not modify the memory maps to map in ROM, so
  5883.       an interrupt could be disastrous
  5884.     clears any pending IRQ7 at end of function
  5885.     functions 1Dxxh are not supported by QEMM v7.01, and always return CF
  5886.       set
  5887.  
  5888. (Table 2749)
  5889. Values for calling QEMM v6.00+ QPI function 1Dxxh:
  5890.     AX = 1D02h to 1DFFh
  5891. Return: CF set
  5892.  
  5893. (Table 2750)
  5894. Values for calling QEMM v6.00+ "QEMM_GET_INFO"/"QPI_GetInfo" function:
  5895.     AX = 1E00h get Stealth configuration
  5896. Return:    CF clear
  5897.     BL = memory configuration flags (documented as "reserved") (see #2774)
  5898.     BH = (v7.00+) disk buffer flags
  5899.         bit 0: DISKBUFFRAME buffer instead of DISKBUF buffer
  5900.         bit 1: buffer has already been used
  5901.     CL = stealth type (00h none, 46h Frame, 4Dh Map, 50h Protect)
  5902.     CH = suspend/resume interrupt (00h none)
  5903.     DL = (v7.00+) size of QEMM disk buffer in KB (00h none)
  5904.     DH = reserved (always 00h for v6.00)
  5905.     SI = reserved (always 0000h for v6.00)
  5906.     DI = reserved (always 0000h for v6.00)
  5907. Note:    this function is officially documented
  5908.  
  5909. (Table 2751)
  5910. Values for calling QEMM v6.00+ "QPI_GetStealthCount" function:
  5911.     AX = 1E01h get number of Stealth'ed ROMs
  5912. Return: CF clear
  5913.     BX = number of Stealth'ed ROMs
  5914. Note:    this function is officially documented
  5915.  
  5916. (Table 2752)
  5917. Values for calling QEMM v6.00+ "QPI_GetStealthList" function:
  5918.     AX = 1E02h
  5919.     ES:DI -> buffer for Stealth ROM info (see #2776)
  5920. Return: CF clear
  5921.     BX = number of Stealth'ed ROMs
  5922.     ES:DI buffer filled
  5923. Note:    this function is officially documented
  5924.  
  5925. (Table 2753)
  5926. Values for unimplemented Stealth information functions:
  5927.     AX = 1E03h to 1EFFh
  5928. Return: CF set
  5929.  
  5930.  
  5931. (Table 2754)
  5932. Values for calling QEMM v6.00+ "QEMM_GET_PTE"/"QPI_GetPTE" function:
  5933.     AX = 1F00h get page table entry
  5934.     CX = page number (0000h-010Fh)
  5935. Return:    CF clear
  5936.     EDX = page table entry
  5937. Note:    this function is officially documented
  5938.  
  5939. (Table 2755)
  5940. Values for calling QEMM v6.00+ "QEMM_SET_PTE"/"QPI_SetPTE" function:
  5941.     AX = 1F01h set page table entry
  5942.     CX = page number (0000h-010Fh)
  5943.     EDX = new page table entry
  5944. Return: CF clear
  5945. Note:    this function is officially documented
  5946. SeeAlso: function 1008h
  5947.  
  5948. (Table 2756)
  5949. Values for calling QEMM v6.00+ QPI function 1Fxxh:
  5950.     AX = 1F02h to 1FFFh
  5951. Return: CF set
  5952.  
  5953. (Table 2757)
  5954. Values for calling QEMM v6.00+ "QEMM_GET_VHI_INFO"/"QPI_GetVHIInfo" function:
  5955.     AX = 2000h "QEMM_GET_VHI_INFO" get VirtualHDIRQ information
  5956. Return: CF clear
  5957.     BL = flags
  5958.         bit 7: VirtualHDIRQ setting respected
  5959.           (set if Stealth active)
  5960.         bits 6-1 reserved
  5961.         bit 0: VirtualHDIRQ currently enabled
  5962.         (INT 15/AH=90h suppressed when enabled)
  5963. Note:    this function is officially documented
  5964. SeeAlso: #2758
  5965.  
  5966. (Table 2758)
  5967. Values for calling QEMM v6.00+ "QEMM_SET_VHI_INFO"/"QPI_SetVHIInfo" function:
  5968.     AX = 2001h set VirtualHDIRQ state
  5969.     BL bit 0 = new VirtualHDIRQ state
  5970. Return: CF clear
  5971.     BL = old VHI setting (bits 0 and 7, see #2757)
  5972. Note:    this function is officially documented
  5973. SeeAlso: #2757
  5974.  
  5975. (Table 2759)
  5976. Values for calling QEMM v6.00+ QPI function 20xxh:
  5977.     AX = 2002h to 20FFh
  5978. Return: CF set
  5979.  
  5980. (Table 2760)
  5981. Values for calling QEMM v6.00+ "QEMM_COPY_STEALTH_ROMS"/"QPI_CopyStealthRoms":
  5982.     AX = 2100h copy data from Stealthed address space
  5983.     DS:SI -> start address of hidden memory to copy
  5984.     ES:DI -> buffer for copied data
  5985.     ECX = number of bytes to copy
  5986. Return: CF clear if successful
  5987.     CF set on error (no Stealth or DS:SI < C000h:0000h or DS:SI + ECX > 1M)
  5988. Note:    this function was officially documented with the release of QEMM 7.50
  5989.  
  5990. (Table 2761)
  5991. Values for calling QEMM v6.00+ QPI function 21xxh:
  5992.     AX = 2101h to 21FFh
  5993. Return: CF set
  5994.  
  5995. (Table 2762)
  5996. Values for calling QEMM v6.03+ QPI function 2200h:
  5997.     AX = 2200h DESQview/X support -- get ???
  5998. Return: CF clear
  5999.     ES:DI -> ???
  6000.  
  6001. (Table 2763)
  6002. Values for calling QEMM v6.03+ QPI function 2201h:
  6003.     AX = 2201h DESQview/X support -- set ???
  6004.     ES:DI -> ??? or 0000h:0000h
  6005. Return: CF clear if successful
  6006.     CF set on error
  6007.  
  6008. (Table 2764)
  6009. Values for calling QEMM v6.04+ QPI function 2300h:
  6010.     AX = 2300h get ???
  6011.     BX = which ??? to get (must be 0000h for v6.04)
  6012. Return: CF clear if successful
  6013.         ES:DI -> ???
  6014.     CF set on error
  6015.  
  6016. (Table 2765)
  6017. Values for calling QEMM v6.04+ QPI function 2301h:
  6018.     AX = 2301h set ???
  6019.     BX = which ??? to set (must be 0000h for v6.04)
  6020.     ES:DI -> ???
  6021. Return: CF clear if successful
  6022.     CF set on error
  6023.  
  6024. (Table 2766)
  6025. Values for calling QEMM v6.04+ QPI function 2302h:
  6026.     AX = 2302h clear specified ???
  6027.     BX = which ??? to clear (must be 0000h for v6.04)
  6028. Return: CF clear if successful
  6029.     CF set on error
  6030.  
  6031. (Table 2767)
  6032. Values for calling QEMM v6.04+ QPI function 23FFh:
  6033.     AX = 23FFh clear all ???
  6034. Return: CF clear if successful
  6035.     CF set on error
  6036.  
  6037. (Table 2768)
  6038. Values for calling QEMM v6.04+ QPI function 23xxh:
  6039.     AX = 2303h to 23FEh
  6040. Return: CF set
  6041.  
  6042. (Table 2769)
  6043. Values for calling QEMM v7.01+ QPI function 24h:
  6044.     AH = 24h ST-DBL support
  6045.     AL = subfunction
  6046.         00h set ???
  6047.         EDX -> information table (EDX = segment SHL 16 + offset)
  6048.         01h ???
  6049. Return: CF clear if successful
  6050.     CF set on error
  6051.  
  6052. (Table 2770)
  6053. Values for calling QEMM unimplemented QPI functions:
  6054.     AH = 25h to FFh
  6055. Return: CF set
  6056.  
  6057. Format of QEMM protection level configuration:
  6058. Offset    Size    Description    (Table 2771)
  6059.  00h    WORD    segment of 128 breakpoint (INT 3) instructions for use in
  6060.           DESQview protection level 3 interrupt vector checking, or
  6061.           0000h to disable; in pl3, INTs 00-7F are pointed at these
  6062.           breakpoints
  6063.  02h    DWORD    -> array of actual interrupt handler addresses for INT 00-7F
  6064.           when interrupt vectors are pointed at protection level 3
  6065.           breakpoints
  6066.  06h    DWORD    far pointer to ??? region list (see #2772)
  6067.  0Ah    DWORD    far pointer to buffer for returned ???
  6068.  0Eh    DWORD    seg:ofs of function to call on protection violation???
  6069.  12h    WORD    segment of ???
  6070.  14h    DWORD    far pointer to DWORD containing number of paragraphs of
  6071.           ??? for segment at offset 12h
  6072.     ???
  6073.  
  6074. Format of protection level Region List:
  6075. Offset    Size    Description    (Table 2772)
  6076.  00h    WORD    number of PAIRS of pointers to follow
  6077.  02h 2N DWORDs    start/end seg:ofs addresses of ??? regions
  6078. Note:    QEMM converts the segmented addresses into linear addresses in place
  6079.  
  6080. Format of EMM Import structure:
  6081. Offset    Size    Description    (Table 2773)
  6082.  00h    DWORD    physical address of EMM import struct
  6083.  04h    BYTE    major version (v6.00 sets to 01h)
  6084.  05h    BYTE    minor version (v6.00 sets to 00h/0Bh)
  6085. SeeAlso: INT 21/AX=4402h/SF=01h
  6086.  
  6087. Bitfields for memory configuration flags:
  6088. Bit(s)    Description    (Table 2774)
  6089.  0    conventional memory sorted
  6090.  1    conventional memory filled
  6091.  2    ???
  6092.  3    ???
  6093.  4    expanded memory is in use
  6094.  5    ???
  6095.  
  6096. Format of QEMM 6.0 memory statistics:
  6097. Offset    Size    Description    (Table 2775)
  6098.  00h    BYTE    01h if Shadow RAM found, 00h otherwise
  6099.  01h    DWORD    initial conventional memory in bytes
  6100.  05h    DWORD    initial extended memory in bytes
  6101.  09h    DWORD    initial expanded memory in bytes
  6102.  0Dh    DWORD    initial "top" or "shadow" memory in bytes
  6103.  11h    DWORD    Unavailable conventional memory in bytes
  6104.  15h    DWORD    Unavailable extended memory in bytes
  6105.  19h    DWORD    Unavailable expanded memory in bytes
  6106.  1Dh    DWORD    Unavailable "top" or "shadow" memory in bytes
  6107.         Add to offset 49h for Total unavailable top/shadow.
  6108.  21h    DWORD    QEMM code size in bytes
  6109.  25h    DWORD    QEMM data size in bytes
  6110.  29h    DWORD    bytes used for TASKS=
  6111.  2Dh    DWORD    DMA buffer size
  6112.  31h    DWORD    bytes used for MAPS=
  6113.  35h    DWORD    bytes of high RAM
  6114.  39h    DWORD    bytes used by mapped ROMs
  6115.  3Dh    DWORD    bytes of conventional memory provided by QEMM
  6116.  41h    DWORD    bytes of extended memory NOT converted by QEMM (EXT=xxx)
  6117.  45h    DWORD    bytes of EMS/XMS pool memory provided by QEMM
  6118.  49h    DWORD    Unavailable "top" or "shadow" memory in bytes
  6119.         Add to offset 1Dh for Total unavailable top/shadow.
  6120.  4Dh    DWORD    conventional memory overhead in bytes
  6121.         (set to 0 by QEMM.COM prior to call)
  6122.  
  6123. Format of Stealth ROM info [array]:
  6124. Offset    Size    Description    (Table 2776)
  6125.  00h    WORD    starting segment of ROM
  6126.  02h    WORD    length of ROM in paragraphs
  6127.  
  6128. Format of QEMM EGA/VGA DAC register virtualization buffer:
  6129. Offset    Size    Description    (Table 2777)
  6130.  00h    BYTE    (temp) current color register number
  6131.  01h    BYTE    (temp) number of bytes written so far for current color reg
  6132.  02h 768 BYTEs    three bytes per color register
  6133. --------m-6740-------------------------------
  6134. INT 67 - LIM EMS - GET MANAGER STATUS
  6135.     AH = 40h
  6136. Return: AH = status (00h,80h,81h,84h) (see #2778)
  6137. Note:    this call can be used only after establishing that the EMS driver is in
  6138.       fact present
  6139. SeeAlso: AH=3Fh,AX=FFA5h
  6140.  
  6141. (Table 2778)
  6142. Values for EMS function status:
  6143.  00h    successful
  6144.  80h    internal error
  6145.  81h    hardware malfunction
  6146.  83h    invalid handle
  6147.  84h    undefined function requested by application
  6148.  85h    no more handles available
  6149.  86h    error in save or restore of mapping context
  6150.  87h    insufficient memory pages in system
  6151.  88h    insufficient memory pages available
  6152.  89h    zero pages requested
  6153.  8Ah    invalid logical page number encountered
  6154.  8Bh    invalid physical page number encountered
  6155.  8Ch    page-mapping hardware state save area is full
  6156.  8Dh    save of mapping context failed
  6157.  8Eh    restore of mapping context failed
  6158.  8Fh    undefined subfunction
  6159.  90h    undefined attribute type
  6160.  91h    feature not supported
  6161.  92h    successful, but a portion of the source region has been overwritten
  6162.  93h    length of source or destination region exceeds length of region
  6163.       allocated to either source or destination handle
  6164.  94h    conventional and expanded memory regions overlap
  6165.  95h    offset within logical page exceeds size of logical page
  6166.  96h    region length exceeds 1M
  6167.  97h    source and destination EMS regions have same handle and overlap
  6168.  98h    memory source or destination type undefined
  6169.  9Ah    specified alternate map register or DMA register set not supported
  6170.  9Bh    all alternate map register or DMA register sets currently allocated
  6171.  9Ch    alternate map register or DMA register sets not supported
  6172.  9Dh    undefined or unallocated alternate map register or DMA register set
  6173.  9Eh    dedicated DMA channels not supported
  6174.  9Fh    specified dedicated DMA channel not supported
  6175.  A0h    no such handle name
  6176.  A1h    a handle found had no name, or duplicate handle name
  6177.  A2h    attempted to wrap around 1M conventional address space
  6178.  A3h    source array corrupted
  6179.  A4h    operating system denied access
  6180. --------m-6741-------------------------------
  6181. INT 67 - LIM EMS - GET PAGE FRAME SEGMENT
  6182.     AH = 41h
  6183. Return: AH = status (see also AH=40h)
  6184.         00h function successful
  6185.         BX = segment of page frame
  6186. SeeAlso: AH=58h,AH=68h
  6187. --------m-6742-------------------------------
  6188. INT 67 - LIM EMS - GET NUMBER OF PAGES
  6189.     AH = 42h
  6190. Return: AH = status (see also AH=40h)
  6191.         00h function successful
  6192.         BX = number of unallocated pages
  6193.         DX = total number of pages
  6194. BUG:    DOS 6.0 EMM386.EXE causes a system lock-up or reboot if in AUTO mode
  6195.       when this call is made; use AH=46h to ensure that EMM386 is ON
  6196.       before making this call
  6197. SeeAlso: INT 2F/AX=2702h
  6198. --------m-6743-------------------------------
  6199. INT 67 - LIM EMS - GET HANDLE AND ALLOCATE MEMORY
  6200.     AH = 43h
  6201.     BX = number of logical pages to allocate
  6202. Return: AH = status (00h,80h,81h,84h,85h,87h,88h,89h) (see #2778)
  6203.     DX = handle if AH=00h
  6204. SeeAlso: AH=45h
  6205. --------u-674321-----------------------------
  6206. INT 67 - Q87 v4+ - INSTALLATION CHECK
  6207.     AX = 4321h
  6208.     EAX = 87654321h (entire EAX value required)
  6209. Return: EAX = 12345678h if Q87 is installed
  6210. Note:    this call requires that VCPI services be available; if they are not,
  6211.       this call will not be recognized
  6212. BUG:    v4.00-v4.03 will hang on most machines when run under bare DOS with
  6213.       no memory manager, because neither Q87 nor UNLOAD87 checks whether
  6214.       there is a valid INT 67 handler before performing an installation
  6215.       check via INT 67
  6216. SeeAlso: AX=2833h,INT 21/AX=4321h
  6217. --------m-6744-------------------------------
  6218. INT 67 - LIM EMS - MAP MEMORY
  6219.     AH = 44h
  6220.     AL = physical page number (0-3)
  6221.     BX = logical page number
  6222.         or FFFFh to unmap (QEMM)
  6223.     DX = handle
  6224. Return: AH = status (00h,80h,81h,83h,84h,8Ah,8Bh) (see #2778)
  6225. SeeAlso: AH=69h
  6226. --------m-6745-------------------------------
  6227. INT 67 - LIM EMS - RELEASE HANDLE AND MEMORY
  6228.     AH = 45h
  6229.     DX = EMM handle
  6230. Return: AH = status (00h,80h,81h,83h,84h,86h) (see #2778)
  6231. SeeAlso: AH=43h
  6232. --------m-6746-------------------------------
  6233. INT 67 - LIM EMS - GET EMM VERSION
  6234.     AH = 46h
  6235. Return: AH = status (00h,80h,81h,84h) (see #2778)
  6236.     AL = EMM version number if AH=00h
  6237. --------m-6747-------------------------------
  6238. INT 67 - LIM EMS - SAVE MAPPING CONTEXT
  6239.     AH = 47h
  6240.     DX = handle
  6241. Return: AH = status (00h,80h,81h,83h,84h,8Ch-8Eh) (see #2778)
  6242. SeeAlso: AH=48h
  6243. --------m-6748-------------------------------
  6244. INT 67 - LIM EMS - RESTORE MAPPING CONTEXT
  6245.     AH = 48h
  6246.     DX = handle
  6247. Return: AH = status (00h,80h,81h,83h,84h,8Eh) (see #2778)
  6248. SeeAlso: AH=47h
  6249. --------m-6749-------------------------------
  6250. INT 67 - LIM EMS - reserved - GET I/O PORT ADDRESSES
  6251.     AH = 49h
  6252. Note:    defined in EMS 3.0, but undocumented in EMS 3.2
  6253. --------m-674A-------------------------------
  6254. INT 67 - LIM EMS - reserved - GET TRANSLATION ARRAY
  6255.     AH = 4Ah
  6256. Note:    defined in EMS 3.0, but undocumented in EMS 3.2
  6257. --------m-674B-------------------------------
  6258. INT 67 - LIM EMS - GET NUMBER OF EMM HANDLES
  6259.     AH = 4Bh
  6260. Return: AH = status (00h,80h,81h,83h,84h) (see #2778)
  6261.     BX = number of EMM handles if AH=00h
  6262. --------m-674C-------------------------------
  6263. INT 67 - LIM EMS - GET PAGES OWNED BY HANDLE
  6264.     AH = 4Ch
  6265.     DX = EMM handle
  6266. Return: AH = status (see #1974)
  6267.     BX = number of logical pages if AH=00h
  6268. SeeAlso: AH=4Dh
  6269. --------m-674D-------------------------------
  6270. INT 67 - LIM EMS - GET PAGES FOR ALL HANDLES
  6271.     AH = 4Dh
  6272.     ES:DI -> array to receive information
  6273. Return: AH = status (00h,80h,81h,84h) (see #2778)
  6274.     ---if AH=00h---
  6275.     BX = number of active EMM handles
  6276.     array filled with 2-word entries, consisting of a handle and the
  6277.       number of pages allocated to that handle
  6278. SeeAlso: AH=4Ch
  6279. --------m-674E-------------------------------
  6280. INT 67 - LIM EMS - GET OR SET PAGE MAP
  6281.     AH = 4Eh
  6282.     AL = subfunction
  6283.         00h get mapping registers
  6284.         01h set mapping registers
  6285.         02h get and set mapping registers at once
  6286.         03h get size of page-mapping array
  6287.     DS:SI -> array holding information (AL=01h/02h)
  6288.     ES:DI -> array to receive information (AL=00h/02h)
  6289. Return: AH = status (00h,80h,81h,84h,8Fh,A3h) (see also AH=40h)
  6290.         00h successful
  6291.         AL = bytes in page-mapping array (AL=03h only)
  6292.         array pointed to by ES:DI receives mapping info (AL=00h/02h)
  6293. Notes:    this function was designed to be used by multitasking operating systems
  6294.       and should not ordinarily be used by appplication software.
  6295.     MD386 returns the size of the page-mapping array in AX instead of AL
  6296. SeeAlso: AH=4Fh
  6297. --------m-674F-------------------------------
  6298. INT 67 - LIM EMS 4.0 - GET/SET PARTIAL PAGE MAP
  6299.     AH = 4Fh
  6300.     AL = subfunction
  6301.         00h get partial page map
  6302.            DS:SI -> structure containing list of segments whose mapping
  6303.             contexts are to be saved
  6304.            ES:DI -> array to receive page map
  6305.         01h set partial page map
  6306.            DS:SI -> structure containing saved partial page map
  6307.         02h get size of partial page map
  6308.            BX = number of mappable segments in the partial map to be saved
  6309. Return: AH = status (00h,80h,81h,84h,8Bh,8Fh,A3h) (see also AH=40h)
  6310.         8Bh one of the specified segments is not mappable
  6311.         A3h contents of partial page map corrupted or count of mappable
  6312.         segments exceeds total number of mappable segments in system
  6313.     AL = size of partial page map for subfunction 02h
  6314. SeeAlso: AH=4Eh
  6315. --------m-6750-------------------------------
  6316. INT 67 - LIM EMS 4.0 - MAP/UNMAP MULTIPLE HANDLE PAGES
  6317.     AH = 50h
  6318.     AL = subfunction
  6319.         00h use physical page numbers
  6320.         01h use segment addresses
  6321.     DX = handle
  6322.     CX = number of entries in array
  6323.     DS:SI -> mapping array (see #2779)
  6324. Return: AH = status (00h,80h,81h,83h,84h,8Ah,8Bh,8Fh) (see #2778)
  6325. SeeAlso: AH=40h
  6326.  
  6327. Format of EMS mapping array entry:
  6328. Offset    Size    Description    (Table 2779)
  6329.  00h    WORD    logical page number or FFFFh to unmap physical page
  6330.  02h    WORD    physical page number or segment address
  6331. --------m-6751-------------------------------
  6332. INT 67 - LIM EMS 4.0 - REALLOCATE PAGES
  6333.     AH = 51h
  6334.     DX = handle
  6335.     BX = number of pages to be allocated to handle
  6336. Return:    AH = status (00h,80h,81h,83h,84h,87h,88h) (see #2780)
  6337.     BX = actual number of pages allocated to handle
  6338.  
  6339. (Table 2780)
  6340. Values for EMS function status:
  6341.  00h    successful
  6342.  80h    internal error
  6343.  81h    hardware malfunction
  6344.  83h    invalid handle
  6345.  84h    undefined function requested
  6346.  87h    more pages requested than present in system
  6347.  88h    more pages requested than currently available
  6348.  8Ah    invalid logical page number encountered
  6349.  8Bh    invalid physical page number encountered
  6350.  8Fh    undefined subfunction
  6351.  90h    undefined attribute type
  6352.  91h    feature not supported
  6353.  A0h    no such handle name
  6354.  A1h    duplicate handle name
  6355. --------m-6752-------------------------------
  6356. INT 67 - LIM EMS 4.0 - GET/SET HANDLE ATTRIBUTES
  6357.     AH = 52h
  6358.     AL = subfunction
  6359.         00h get handle attributes
  6360.         Return: AL = attribute
  6361.                 00h handle is volatile
  6362.                 01h handle is nonvolatile
  6363.         01h set handle attributes
  6364.         BL = new attribute (see returned AL)
  6365.         02h get attribute capability
  6366.         Return: AL = attribute capability
  6367.                 00h only volatile handles supported
  6368.                 01h both volatile and non-volatile supported
  6369.     DX = handle
  6370. Return: AH = status (00h,80h,81h,83h,84h,8Fh-91h) (see #2778)
  6371. SeeAlso: AH=53h
  6372. --------m-6753-------------------------------
  6373. INT 67 - LIM EMS 4.0 - GET/SET HANDLE NAME
  6374.     AH = 53h
  6375.     AL = subfunction
  6376.         00h get handle name
  6377.            ES:DI -> 8-byte buffer for handle name
  6378.         01h set handle name
  6379.            DS:SI -> 8-byte handle name
  6380.     DX = handle
  6381. Return: AH = status (00h,80h,81h,83h,84h,8Fh,A1h) (see #2778)
  6382. SeeAlso: AH=52h
  6383. --------m-6754-------------------------------
  6384. INT 67 - LIM EMS 4.0 - GET HANDLE DIRECTORY
  6385.     AH = 54h
  6386.     AL = subfunction
  6387.         00h get handle directory
  6388.            ES:DI -> buffer for handle directory (see #2781)
  6389.         01h search for named handle
  6390.            DS:SI -> 8-byte name
  6391.         02h get total number of handles
  6392. Return: AL = number of entries in handle directory (subfunction 00h)
  6393.     DX = value of named handle (subfunction 01h)
  6394.     BX = total number of handles (subfunction 02h)
  6395.     AH = status (00h,80h,81h,84h,8Fh,A0h,A1h) (see also #2780)
  6396.         A1h a handle found had no name
  6397.  
  6398. Format of EMS handle directory entry:
  6399. Offset    Size    Description    (Table 2781)
  6400.  00h    WORD    handle
  6401.  02h  8 BYTEs    handle's name
  6402. --------m-6755-------------------------------
  6403. INT 67 - LIM EMS 4.0 - ALTER PAGE MAP AND JUMP
  6404.     AH = 55h
  6405.     AL = subfunction
  6406.         00h physical page numbers provided by caller
  6407.         01h segment addresses provided by caller
  6408.     DX = handle
  6409.     DS:SI -> structure containing map and jump address
  6410. Return: (at target address unless error)
  6411.     AH = status (00h,80h,81h,83h,84h,8Ah,8Bh,8Fh) (see #2778)
  6412. SeeAlso: AH=56h
  6413. --------m-6756-------------------------------
  6414. INT 67 - LIM EMS 4.0 - ALTER PAGE MAP AND CALL
  6415.     AH = 56h
  6416.     AL = subfunction
  6417.         00h physical page numbers provided by caller
  6418.         DX = handle
  6419.         DS:SI -> structure containing page map and call address
  6420.         01h segment addresses provided by caller
  6421.         DX = handle
  6422.         DS:SI -> structure containing page map and call address
  6423.         02h get page map stack space required
  6424.         Return: BX = stack space required
  6425. Return: (if successful, the target address is called.  Use a RETF to return and
  6426.      restore mapping context)
  6427.     AH = status (00h,80h,81h,83h,84h,8Ah,8Bh,8Fh) (see #2778)
  6428. SeeAlso: AH=55h
  6429. --------m-6756FF-----------------------------
  6430. INT 67 - RM386 v6.00 - ???
  6431.     AX = 56FFh
  6432.     DS:SI -> ???
  6433.     ???
  6434. Return: ???
  6435. --------m-6757-------------------------------
  6436. INT 67 - LIM EMS 4.0 - MOVE/EXCHANGE MEMORY REGION
  6437.     AH = 57h
  6438.     AL = subfunction
  6439.         00h move memory region
  6440.         01h exchange memory region
  6441.     DS:SI -> structure describing source and destination (see #2783)
  6442. Return: AH = status (see #2782)
  6443. Note:    source and destination may overlap for a move, in which case the copy
  6444.       direction is chosen such that the destination receives an intact copy
  6445.       of the source region
  6446.  
  6447. (Table 2782)
  6448. Values for EMS function status:
  6449.  00h    successful
  6450.  80h    internal error
  6451.  81h    hardware failure
  6452.  83h    invalid handle
  6453.  84h    undefined function requested
  6454.  8Ah    invalid logical page number encountered
  6455.  8Fh    undefined subfunction
  6456.  92h    successful, but a portion of the source region has been overwritten
  6457.  93h    length of source or destination region exceeds length of region
  6458.       allocated to either source or destination handle
  6459.  94h    conventional and expanded memory regions overlap
  6460.  95h    offset within logical page exceeds size of logical page
  6461.  96h    region length exceeds 1M
  6462.  97h    source and destination EMS regions have same handle and overlap
  6463.  98h    memory source or destination type undefined
  6464.  A2h    attempted to wrap around 1M conventional address space
  6465.  
  6466. Format of EMS copy data:
  6467. Offset    Size    Description    (Table 2783)
  6468.  00h    DWORD    region length in bytes
  6469.  04h    BYTE    source memory type
  6470.         00h conventional
  6471.         01h expanded
  6472.  05h    WORD    source handle (0000h if conventional memory)
  6473.  07h    WORD    source initial offset (within page if EMS, segment if convent)
  6474.  09h    WORD    source initial segment (conv mem) or logical page (EMS)
  6475.  0Bh    BYTE    destination memory type
  6476.         00h conventional
  6477.         01h expanded
  6478.  0Ch    WORD    destination handle
  6479.  0Eh    WORD    destination initial offset
  6480.  10h    WORD    destination initial segment or page
  6481. --------m-6758-------------------------------
  6482. INT 67 - LIM EMS 4.0 - GET MAPPABLE PHYSICAL ADDRESS ARRAY
  6483.     AH = 58h
  6484.     AL = subfunction
  6485.         00h get mappable physical address array
  6486.         ES:DI -> buffer to be filled with array (see #2784)
  6487.         01h get number of entries in m.p.a. array
  6488. Return: CX = number of entries in array
  6489.     AH = status (00h,80h,81h,84h,8Fh) (see #2782)
  6490. Note:    the returned array for subfunction 00h is filled in physical segment
  6491.       address order
  6492.  
  6493. Format of EMS mappable physical address entry:
  6494. Offset    Size    Description    (Table 2784)
  6495.  00h    WORD    physical page segment
  6496.  02h    WORD    physical page number
  6497. --------m-675857-----------------------------
  6498. INT 67 U - NETROOM??? - ???
  6499.     AX = 5857h
  6500.     BX = function??? (0057h,0059h,0159h seen)
  6501.     ???
  6502. Return: ???
  6503. Note:    BX=0059h appears to be analogous to AX=5800h and BX=0159h appears to
  6504.       be analogous to AX=5801h; BX=0057h appears to indicate whether
  6505.       AX=580xh or AX=5857h/BX=0x59h should be used
  6506. SeeAlso: AX=5BF0h
  6507. --------m-6759-------------------------------
  6508. INT 67 - LIM EMS 4.0 - GET EXPANDED MEMORY HARDWARE INFORMATION
  6509.     AH = 59h
  6510.     AL = subfunction
  6511.         00h get hardware configuration array
  6512.         ES:DI -> buffer to be filled with array (see #2785)
  6513.         01h get unallocated raw page count
  6514.         Return: BX = unallocated raw pages
  6515.             DX = total raw pages
  6516. Return: AH = status (see also AH=58h"EMS 4.0")
  6517.         A4h access denied by operating system
  6518. Note:    subfunction 00h is for use by operating systems only, and can be
  6519.       enabled or disabled at any time by the operating system
  6520.  
  6521. Format of EMS hardware configuration array:
  6522. Offset    Size    Description    (Table 2785)
  6523.  00h    WORD    size of raw EMM pages in paragraphs
  6524.  02h    WORD    number of alternate register sets
  6525.  04h    WORD    size of mapping-context save area in bytes
  6526.  06h    WORD    number of register sets assignable to DMA
  6527.  08h    WORD    DMA operation type
  6528.         0000h DMA with alternate register sets
  6529.         0001h only one DMA register set
  6530. --------m-675A-------------------------------
  6531. INT 67 - LIM EMS 4.0 - ALLOCATE STANDARD/RAW PAGES
  6532.     AH = 5Ah
  6533.     AL = subfunction
  6534.         00h allocate standard pages
  6535.         01h allocate raw pages
  6536.     BX = number of pages to allocate
  6537. Return: DX = handle
  6538.     AH = status (00h,80h,81h,84h,85h,87h,88h,8Fh) (see #2778)
  6539. --------m-675B-------------------------------
  6540. INT 67 - LIM EMS 4.0 - ALTERNATE MAP REGISTER SET
  6541.     AH = 5Bh
  6542.     AL = subfunction
  6543.         00h get alternate map register set
  6544.         Return: BL = current active alternate map register set number
  6545.             ES:DI -> map register context save area if BL=00h
  6546.         01h set alternate map register set
  6547.         BL = new alternate map register set number
  6548.         ES:DI -> map register context save area if BL=0
  6549.         02h get alternate map save array size
  6550.         Return: DX = array size in bytes
  6551.         03h allocate alternate map register set
  6552.         Return: BL = number of map register set; 00h = not supported
  6553.         04h deallocate alternate map register set
  6554.         BL = number of alternate map register set
  6555. Return: AH = status (00h,80h,81h,84h,8Fh,9Ah-9Dh,A3h,A4h) (see #2786)
  6556. Note:    this function is for use by operating systems only, and can be
  6557.       enabled or disabled at any time by the operating system
  6558.  
  6559. (Table 2786)
  6560. Values for EMS function status:
  6561.  00h    successful
  6562.  80h    internal error
  6563.  81h    hardware malfunction
  6564.  84h    undefined function requested
  6565.  8Fh    undefined subfunction
  6566.  9Ah    specified alternate map register or DMA register set not supported
  6567.  9Bh    all alternate map register or DMA register sets currently allocated
  6568.  9Ch    alternate map register or DMA register sets not supported
  6569.  9Dh    undefined or unallocated alternate map register/DMA register set
  6570.  9Eh    dedicated DMA channels not supported
  6571.  9Fh    specified dedicated DMA channel not supported
  6572.  A3h    source array corrupted
  6573.  A4h    operating system denied access
  6574. --------m-675B-------------------------------
  6575. INT 67 - LIM EMS 4.0 - ALTERNATE MAP REGISTER SET - DMA REGISTERS
  6576.     AH = 5Bh
  6577.     AL = subfunction
  6578.         05h allocate DMA register set
  6579.         Return: BL = DMA register set number, 00h if not supported
  6580.         06h enable DMA on alternate map register set
  6581.            BL = DMA register set number
  6582.            DL = DMA channel number
  6583.         07h disable DMA on alternate map register set
  6584.            BL = DMA register set number
  6585.         08h deallocate DMA register set
  6586.            BL = DMA register set number
  6587. Return: AH = status (00h,80h,81h,84h,8Fh,9Ah-9Fh,A3h,A4h) (see #2786)
  6588. Note:    this function is for use by operating systems only, and can be
  6589.       enabled or disabled at any time by the operating system
  6590. --------m-675BE0-----------------------------
  6591. INT 67 - MICEMM v4D, RM386 - GET LINEAR ADDRESS OF MEMORY
  6592.     AX = 5BE0h
  6593.     ES:BX -> memory for which to get linear address
  6594. Return: AH = 00h
  6595.     CX:DX = linear address of physical memory corresponding to ES:BX
  6596. Program: RAM-MAN/386 is the memory manager included with Helix's Netroom;
  6597.       MICEMM is a memory manager for some Micronics motherboards
  6598. Note:    this has been superceded by AX=DE06h, which should be used instead
  6599. SeeAlso: AX=5BF0h,AX=5BF1h,AX=DE06h
  6600. --------m-675BE1-----------------------------
  6601. INT 67 - RM386 v6.00+ - GET MEMORY MANAGER SIZE
  6602.     AX = 5BE1h
  6603. Return: AH = 00h
  6604.     CX = code and data size in bytes
  6605.     DX:BX = physical address of RM386 code
  6606.     DI:SI = total size of RM386 area including handle tables
  6607.     BP = number of additional pages (high DOS, etc.)
  6608. SeeAlso: AX=5BE0h,AX=5BE2h
  6609. --------m-675BE2-----------------------------
  6610. INT 67 - RM386 v6.00+ - GET INTERRUPT VECTORS
  6611.     AX = 5BE2h
  6612. Return: DS:SI -> V86-mode table (see #2787)
  6613.     ES:BX -> ??? (undoc, middle of device driver interrupt routine!)
  6614. SeeAlso: AX=5BE0h,AX=5BE1h
  6615.  
  6616. Format of RM386 V86-mode table:
  6617. Offset    Size    Description    (Table 2787)
  6618.  00h    DWORD    original INT 13 vector
  6619.  04h    DWORD    original INT 15 vector
  6620.  08h    DWORD    original INT 19 vector
  6621.  0Ch    DWORD    original INT 21 vector
  6622.  10h    DWORD    original INT 4B vector
  6623.  14h    DWORD    original INT 67 vector
  6624. --------m-675BF0-----------------------------
  6625. INT 67 - MICEMM v4D, RM386 - INSTALLATION CHECK
  6626.     AX = 5BF0h
  6627. Return: AH = 00h if MICEMM or RM386 present
  6628.         BX = code segment of driver
  6629. Program: MICEMM is the Micronics Expanded Memory Manager; RM386 is the memory
  6630.       manager included in Helix Software's Netroom
  6631. SeeAlso: AH=3Fh,AX=5BE0h,AX=5BF1h
  6632. --------m-675BF1-----------------------------
  6633. INT 67 - MICEMM v4D, RM386 - GET ADDRESS MAP
  6634.     AX = 5BF1h
  6635.     ES:BX -> 256-byte (MICEMM) or 512-byte (RM386) buffer for memory types
  6636. Return: AH = 00h
  6637.     ES:BX buffer filled (see #2788)
  6638. Note:    each byte in the buffer specifies the type of a 4K page of memory
  6639. SeeAlso: AX=5BE0h,AX=5BF0h
  6640.  
  6641. (Table 2788)
  6642. Values for MICEMM/RM386 memory type:
  6643.  00h    unused (MICEMM), RAM/available (RM386)
  6644.  02h    DOS extension (XMS UMB)
  6645.  04h    shadowed ROM
  6646.  08h    mappable EMS
  6647.  10h    page frame
  6648.  20h    ROM
  6649.  40h    reserved (video memory, etc)
  6650.  80h    RAM (MICEMM), Windows UMB (RM386)
  6651. --------m-675BF2-----------------------------
  6652. INT 67 - RM386 - GET RM386 INTERNAL DATA
  6653.     AX = 5BF2h
  6654.     CX = size of buffer
  6655.     DS:SI -> buffer for internal data
  6656.     (documentation says ES:BX -> buffer, SI = offset within RM386)
  6657. Return: buffer filled
  6658. Note:    the data returned by this function is release-specific
  6659. SeeAlso: AX=5BF0h
  6660. --------m-675BF3-----------------------------
  6661. INT 67 - RM386 - RETURN TO REAL MODE
  6662.     AX = 5BF3h
  6663. Return: nothing
  6664. Note:    use AX=5DE0h instead of this functin
  6665. SeeAlso: AX=5BF0h,AX=5DE0h
  6666. --------m-675BF4-----------------------------
  6667. INT 67 - RM386 v6.00 - GET RM386 GLOBAL FLAGS
  6668.     AX = 5BF4h
  6669. Return: AH = 00h
  6670.     BX = global flags 1 (see #2789)
  6671.     CX = global flags 2 (see #2790)
  6672.     DX = global flags 3 (see #2791)
  6673.     SI = global flags 4 (see #2792)
  6674. SeeAlso: AX=5BF0h
  6675.  
  6676. Bitfields for RM386 global flags 1:
  6677. Bit(s)    Description    (Table 2789)
  6678.  0-3    reserved
  6679.  4    V86 mode
  6680.  5    reserved
  6681.  6    80386 or higher CPU
  6682.  7,8    reserved
  6683.  9    A20 enabled at startup
  6684.  10    "HIGH_IO"
  6685.  11    ROM
  6686.  12    large frame
  6687.  13,14    reserved
  6688.  15    PS/2-style A20 control
  6689.  
  6690. Bitfields for RM386 global flags 2:
  6691. Bit(s)    Description    (Table 2790)
  6692.  0    HMA in use
  6693.  1    XMS present
  6694.  2    using XMS driver memory
  6695.  3    HIGH (NEAT only)
  6696.  4-7    reserved
  6697.  8    NOBKTRAP
  6698.  9    NORESET
  6699.  10    ALTMAP
  6700.  11    NOFRAME
  6701.  12-15    reserved
  6702.  
  6703. Bitfields for RM386 global flags 3:
  6704. Bit(s)    Description    (Table 2791)
  6705.  0    NOTEST
  6706.  1    NOEBDA
  6707.  2    Windows3 support
  6708.  3    system board mouse
  6709.  4    DISKBUF
  6710.  5    EBDALOW
  6711.  6    A20 global enable flag
  6712.  7    A20 flag
  6713.  8    EBDA moved to stub
  6714.  9    VXD file was found
  6715.  10    reserved
  6716.  11    NOBOOTMAP
  6717.  12    AUTO
  6718.  13    PS/2 machine
  6719.  14    Compaq ROM merge active
  6720.  15    NOHMA set
  6721.  
  6722. Bitfields for RM386 global flags 4:
  6723. Bit(s)    Description    (Table 2792)
  6724.  0    "NOV8259" don't virtualize interrupt controller
  6725.  1    NOSCSI
  6726.  2    NOSCAN
  6727.  3    NOTR
  6728.  4    ALTBOOT
  6729.  5    NOCOMPQ
  6730.  6    KB2TRAP
  6731.  7    DESHADOW
  6732.  8    Video 7 VGA detected
  6733.  9    reserved
  6734.  10    NOVGA
  6735.  11    NOPS2
  6736.  12    DEBUG
  6737.  13    NOVKB
  6738.  14,15    reserved
  6739. --------m-675BF5-----------------------------
  6740. INT 67 - RM386 v6.00 - GET RM386 EMS HANDLE COUNT
  6741.     AX = 5BF5h
  6742. Return: AH = status
  6743.         00h successful
  6744.         BX = current number of allocated EMS handles
  6745.         84h function not available
  6746. SeeAlso: AX=5BF0h
  6747. --------m-675C-------------------------------
  6748. INT 67 - LIM EMS 4.0 - PREPARE EXPANDED MEMORY HARDWARE FOR WARM BOOT
  6749.     AH = 5Ch
  6750. Return: AH = status (see #2793)
  6751. Note:    when MS-DOS v6.xx EMM386 is loaded and the keyboard driver supports
  6752.       INT 15/AH=4Fh (keyboard intercept) calls, the system may hang
  6753.       instead of booting if this function is called just prior to a jump
  6754.       to F000h:FFF0h
  6755.  
  6756. (Table 2793)
  6757. Values for EMS function status:
  6758.  00h    successful
  6759.  80h    internal error
  6760.  81h    hardware malfunction
  6761.  84h    undefined function requested
  6762. --------m-675D-------------------------------
  6763. INT 67 - LIM EMS 4.0 - ENABLE/DISABLE OS FUNCTION SET FUNCTIONS
  6764.     AH = 5Dh
  6765.     AL = subfunction
  6766.         00h enable OS Function Set
  6767.         01h disable OS Function Set
  6768.         02h return access key (resets memory manager, returns access key at
  6769.         next invocation)
  6770.     BX,CX = access key returned by first invocation
  6771. Return: BX,CX = access key, returned only on first invocation of function
  6772.     AH = status (see also AH=5Ch)
  6773.         8Fh undefined subfunction
  6774.         A4h operating system denied access
  6775. --------m-675D03-----------------------------
  6776. INT 67 u - Nanosoft MD386 - INTERNAL INITIALIZATION
  6777.     AX = 5D03h
  6778.     ???
  6779. Return: ???
  6780. Program: MD386 is a subset EMS memory manager by Nanosoft specifically designed
  6781.       for use with the MultiDOS Plus multitasker
  6782. SeeAlso: AX=5D04h,AX=5E00h
  6783. --------m-675D04-----------------------------
  6784. INT 67 - Nanosoft MD386 - GET ALTERNATE MAP STRUCTURE
  6785.     AX = 5D04h
  6786.     BX = alternate register set number
  6787.     ES:DI -> 1024-byte buffer for map structure
  6788. Return: AH = status (see #2778)
  6789.     buffer filled if AH=00h
  6790. Note:    used for debugging purposes
  6791. SeeAlso: AX=5D05h
  6792. --------m-675D05-----------------------------
  6793. INT 67 - Nanosoft MD386 - GET INTERNAL HANDLE TABLE
  6794.     AX = 5D05h
  6795.     BX = handle number
  6796.     ES:DI -> 1024-byte buffer for handle table
  6797. Return: AH = status (see #2778)
  6798.     buffer filled if AH=00h
  6799. Note:    used for debugging purposes
  6800. SeeAlso: AX=5D04h
  6801. --------m-675DE0-----------------------------
  6802. INT 67 - RM386 - DISABLE RM386
  6803.     AX = 5DE0h
  6804. Note:    RM386 traps this function on the initial transition to protected
  6805.       mode caused by the INT instruction, which means it can not be
  6806.       overridden simply by hooking the interrupt
  6807. SeeAlso: AX=5DE1h
  6808. --------m-675DE1-----------------------------
  6809. INT 67 - RM386 - ENABLE RM386
  6810.     AX = 5DE1h
  6811. Note:    RM386 traps this function on the initial transition to protected
  6812.       mode caused by the INT instruction, which means it can not be
  6813.       overridden simply by hooking the interrupt
  6814. SeeAlso: AX=5DE0h
  6815. --------m-675DE2-----------------------------
  6816. INT 67 - RM386 - GET PAGE TABLE
  6817.     AX = 5DE2h
  6818.     ES:DI -> 1088-byte buffer for page table
  6819. Return: ES:DI buffer filled
  6820. Note:    RM386 traps this function on the initial transition to protected
  6821.       mode caused by the INT instruction, which means it can not be
  6822.       overridden simply by hooking the interrupt
  6823. SeeAlso: AX=5DE3h
  6824. --------m-675DE3-----------------------------
  6825. INT 67 - RM386 - SET PAGE TABLE
  6826.     AX = 5DE3h
  6827.     ES:DI -> 1088-byte buffer containing page table
  6828. Notes:    only the access bits of the page table are used, the remainder is
  6829.       ignored
  6830.     RM386 traps this function on the initial transition to protected
  6831.       mode caused by the INT instruction, which means it can not be
  6832.       overridden simply by hooking the interrupt
  6833. SeeAlso: AX=5DE2h
  6834. --------m-675DE4-----------------------------
  6835. INT 67 - RM386 - SET WRITE-PROTECTION FOR PAGE IN FIRST MEGABYTE
  6836.     AX = 5DE4h
  6837.     BL = page number
  6838.     BH = access (00h read-only, 01h read-write)
  6839. Note:    RM386 traps this function on the initial transition to protected
  6840.       mode caused by the INT instruction, which means it can not be
  6841.       overridden simply by hooking the interrupt
  6842. --------m-675DE5-----------------------------
  6843. INT 67 - RM386 - MAP PHYSICAL PAGE TO PHYSICAL SEGMENT
  6844.     AX = 5DE5h
  6845.     EBX = physical page number
  6846.     DX = page number in first megabyte to be remapped (linear-addr SHR 12)
  6847. Return: AH = status
  6848.         00h successful
  6849.         8Bh invalid destination page (not in first megabyte)
  6850. Note:    RM386 traps this function on the initial transition to protected
  6851.       mode caused by the INT instruction, which means it can not be
  6852.       overridden simply by hooking the interrupt
  6853. SeeAlso: AX=5DE6h
  6854. --------m-675DE6-----------------------------
  6855. INT 67 - RM386 - MAP LOGICAL 4K PAGE TO PHYSICAL SEGMENT
  6856.     AX = 5DE6h
  6857.     BX = logical page number in 4K pages from beginning of memory for EMS
  6858.           handle
  6859.     CX = segment in first megabyte to be remapped
  6860.     DX = previously-allocated EMS handle
  6861. Return: AH = status
  6862.         00h successful
  6863.         83h invalid handle
  6864.         8Ah invalid logical page (out of handle's range)
  6865.         8Bh invalid destination page (not in first megabyte)
  6866. Note:    RM386 traps this function on the initial transition to protected
  6867.       mode caused by the INT instruction, which means it can not be
  6868.       overridden simply by hooking the interrupt
  6869. SeeAlso: AX=5DE5h
  6870. --------m-675DE7-----------------------------
  6871. INT 67 - RM386 - SET PAGE TABLE BITS FOR RANGE OF PAGES
  6872.     AX = 5DE7h
  6873.     BL = page table bits to be set (bits 2-0 = U/S, R/W, P)
  6874.     CX = number of pages to set
  6875.     DX = first page number to set (in first megabyte)
  6876. Return: AH = status
  6877.         00h successful
  6878.         8Bh invalid destination page (not in first megabyte)
  6879.         A5h invalid page bits
  6880.         A6h invalid page count (overflows first megabyte)
  6881. Note:    RM386 traps this function on the initial transition to protected
  6882.       mode caused by the INT instruction, which means it can not be
  6883.       overridden simply by hooking the interrupt
  6884. --------m-675DE8-----------------------------
  6885. INT 67 - RM386 - GET PARTIAL PAGE TABLE
  6886.     AX = 5DE8h
  6887.     BX = starting page number in first megabyte+HMA (0000h-010Fh)
  6888.     CX = number of page table entries to get
  6889.     ES:DI -> buffer for DWORD page table entries
  6890. Return: AH = status (00h successful, 8Bh invalid page)
  6891. Note:    RM386 traps this function on the initial transition to protected
  6892.       mode caused by the INT instruction, which means it can not be
  6893.       overridden simply by hooking the interrupt
  6894. SeeAlso: AX=5DE9h
  6895. --------m-675DE9-----------------------------
  6896. INT 67 - RM386 - SET PARTIAL PAGE TABLE
  6897.     AX = 5DE9h
  6898.     BX = starting page number in first megabyte+HMA (0000h-010Fh)
  6899.     CX = number of page table entries to get
  6900.     DS:SI -> buffer of DWORD page table entries
  6901. Return: AH = status (00h successful, 8Bh invalid destination page)
  6902. Note:    RM386 traps this function on the initial transition to protected
  6903.       mode caused by the INT instruction, which means it can not be
  6904.       overridden simply by hooking the interrupt
  6905. SeeAlso: AX=5DE8h
  6906. --------m-675DEA-----------------------------
  6907. INT 67 - RM386 - V86-MODE I/O PORT TRAPPING CONTROL
  6908.     AX = 5DEAh
  6909.     BX = function
  6910.         00h globally disable V86-mode trapping
  6911.         01h globally enable V86-mode trapping
  6912.         CL = interrupt to use for trapping
  6913.         02h get I/O trapping state
  6914. Return: AH = status
  6915.         00h successful
  6916.         BX = current trapping state (function 02h)
  6917.             0000h disabled, 0001h enabled
  6918.         CX = interrupt used as trap interrupt (functions 00h and 02h)
  6919. Notes:    RM386 traps this function on the initial transition to protected
  6920.       mode caused by the INT instruction, which means it can not be
  6921.       overridden simply by hooking the interrupt
  6922.     when I/O trapping is enabled and I/O port access occurs, RM386
  6923.       simulates an INT instruction for the specified interrupt; the
  6924.       interrupt handler is responsible for decoding the trapped instruction
  6925.       and performing the appropriate action.  INT 2C/AX=002Dh provides a
  6926.       similar but more-easily used interface.
  6927. SeeAlso: AX=5DEBh,AH=EFh"RM386",INT 2C/AX=002Dh
  6928. --------m-675DEB-----------------------------
  6929. INT 67 - RM386 - V86-MODE I/O TRAPPING PORT CONTROL
  6930.     AX = 5DEBh
  6931.     BX = function
  6932.         00h disable V86-mode trapping for specified port
  6933.         01h enable V86-mode trapping for specified port
  6934.         02h get V86-mode trapping state for specified port
  6935.     DX = port for which to enable/disable/query trapping
  6936. Return: AH = status
  6937.         00h successful
  6938.         BX = current trapping state (00h off, 01h on) (function 02)
  6939.         A7h invalid port ID
  6940.         A8h reserved port--cannot trap/untrap (DMA/INT/KBD controllers)
  6941. Notes:    RM386 traps this function on the initial transition to protected
  6942.       mode caused by the INT instruction, which means it can not be
  6943.       overridden simply by hooking the interrupt
  6944. SeeAlso: AX=5DEAh
  6945. --------m-675DFD-----------------------------
  6946. INT 67 U - RM386 v6.00 - ???
  6947.     AX = 5DFDh
  6948.     ???
  6949. Return: ???
  6950. Note:    RM386 traps this function on the initial transition to protected
  6951.       mode caused by the INT instruction, which means it can not be
  6952.       overridden simply by hooking the interrupt
  6953. SeeAlso: AX=5DFEh
  6954. --------m-675DFE-----------------------------
  6955. INT 67 U - RM386 v6.00 - ???
  6956.     AX = 5DFEh
  6957.     ???
  6958. Return: ???
  6959. Note:    RM386 traps this function on the initial transition to protected
  6960.       mode caused by the INT instruction, which means it can not be
  6961.       overridden simply by hooking the interrupt
  6962. SeeAlso: AX=5DFDh
  6963. --------m-675DFF-----------------------------
  6964. INT 67 U - RM386 v6.00 - ???
  6965.     AX = 5DFFh
  6966.     ???
  6967. Return: ???
  6968. Note:    RM386 traps this function on the initial transition to protected
  6969.       mode caused by the INT instruction, which means it can not be
  6970.       overridden simply by hooking the interrupt
  6971. SeeAlso: AX=5DFDh,AX=5DFEh
  6972. --------m-675E00-----------------------------
  6973. INT 67 - Nanosoft MD386 - SET HARDWARE BREAKPOINT
  6974.     AX = 5E00h
  6975.     DH = breakpoint number (0-3)
  6976.     DL = breakpoint attributes (used to set DR7)
  6977.     CX:BX = linear address of breakpoint
  6978. SeeAlso: AX=5D03h,AX=5E01h
  6979. --------m-675E01-----------------------------
  6980. INT 67 - Nanosoft MD386 - GET HARDWARE DEBUG REGISTER
  6981.     AX = 5E01h
  6982.     BL = register number (0-3,7)
  6983. Return: CX:BX = value of specified DRx register
  6984. SeeAlso: AX=5E00h
  6985. --------m-675E02-----------------------------
  6986. INT 67 - Nanosoft MD386 - SET DEBUG EXCEPTION HANDLER
  6987.     AX = 5E02h
  6988.     CX:BX -> exception handler
  6989. Note:    the specified exception handler is called with a simulated interrupt
  6990.       whenever a debug exception occurs which was caused by a hardware
  6991.       breakpoint set with the debug registers
  6992. SeeAlso: AX=5E04h,AX=5E05h
  6993. --------m-675E03-----------------------------
  6994. INT 67 - Nanosoft MD386 - ENABLE/DISABLE MEMORY WRITE PROTECTION
  6995.     AX = 5E03h
  6996.     BL = register map set number
  6997.     BH = new state (00h read-only, else read-write)
  6998.     CX = linear page number (linear address SHR 12)
  6999. Note:    setting write protection in map set 0 will cause the setting to become
  7000.       the default for newly-allocated map sets
  7001. --------m-675E04-----------------------------
  7002. INT 67 - Nanosoft MD386 - GET DEBUG EXCEPTION
  7003.     AX = 5E04h
  7004. Return: BL = debug exception (low byte of DR6 register)
  7005. SeeAlso: AX=5E02h,AX=5E05h
  7006. --------m-675E05-----------------------------
  7007. INT 67 - Nanosoft MD386 - IGNORE NEXT DEBUG EXCEPTION
  7008.     AX = 5E05h
  7009. Note:    may be required when using AX=5E02h for handling instruction
  7010.       breakpoints
  7011. SeeAlso: AX=5E02h,AX=5E04h
  7012. --------m-6760-------------------------------
  7013. INT 67 - EEMS - GET PHYSICAL WINDOW ARRAY
  7014.     AH = 60h
  7015.     ES:DI -> buffer
  7016. Return: AH = status (see also AH=40h)
  7017.     AL = number of entries
  7018.     buffer at ES:DI filled
  7019. --------m-6761-------------------------------
  7020. INT 67 - EEMS - GENERIC ACCELERATOR CARD SUPPORT
  7021.     AH = 61h
  7022.     ???
  7023. Return: ???
  7024. Note:    can be used by accelerator card manufacturer to flush RAM cache,
  7025.       ensuring that the cache accurately reflects what the processor would
  7026.       see without the cache.
  7027. --------m-676100-----------------------------
  7028. INT 67 - EEMS - STB GENERIC ACCELERATOR CARD SUPPORT - INSTALLATION CHECK???
  7029.     AX = 6100h
  7030. Return: AH = status (00h if installed???)
  7031. Note:    STB's RAPIDMAP.SYS EMS driver calls this function and AX=6101h if
  7032.       the signature "GACXXX" is found at offset 0Ah in the INT 67 handler's
  7033.       segment (i.e. a device driver named GACXXX?? has hooked INT 67)
  7034. SeeAlso: AX=6101h,INT 02/SI=0714h
  7035. --------m-676101-----------------------------
  7036. INT 67 - EEMS - STB GENERIC ACCELERATOR CARD SUPPORT - GET ??? ENTRY POINT
  7037.     AX = 6101h
  7038. Return: AH = status
  7039.     ---if AH=00h---
  7040.     ES:BX -> ??? entry point
  7041. SeeAlso: AX=6100h
  7042. --------m-6768-------------------------------
  7043. INT 67 - EEMS - GET ADDRESSES OF ALL PAGE FRAMES IN SYSTEM
  7044.     AH = 68h
  7045.     ES:DI -> buffer
  7046. Return: AH = status (see also AH=40h)
  7047.     AL = number of entries
  7048.     buffer at ES:DI filled
  7049. Note:    equivalent to LIM 4.0 function 58h
  7050. --------m-6769-------------------------------
  7051. INT 67 - EEMS - MAP PAGE INTO FRAME
  7052.     AH = 69h
  7053.     AL = frame number
  7054.     BX = page number
  7055.     DX = handle
  7056. Return: AH = status (see also AH=40h)
  7057. Note:    similar to EMS function 44h
  7058. SeeAlso: AH=44h,AH=50h,AH=6Ah
  7059. --------m-676A-------------------------------
  7060. INT 67 - EEMS - PAGE MAPPING
  7061.     AH = 6Ah
  7062.     AL = subfunction
  7063.         00h save partial page map
  7064.         CH = first page frame
  7065.         CL = number of frames
  7066.         ES:DI -> buffer which is to be filled
  7067.         01h restore partial page map
  7068.         CH = first page frame
  7069.         CL = number of frames
  7070.         DI:SI -> previously saved page map
  7071.         02h save and restore partial page map
  7072.         CH = first page frame
  7073.         CL = number of frames
  7074.         ES:DI = buffer for current page map
  7075.         DI:SI = new page map
  7076.         03h get size of save array
  7077.         CH = first page frame
  7078.         CL = number of frames
  7079.         Return: AL = size of array in bytes
  7080.         04h switch to standard map register setting
  7081.         05h switch to alternate map register setting
  7082.         06h deallocate pages mapped to frames in conventional memory
  7083.         CH = first page frame
  7084.         CL = number of frames
  7085. Return: AH = status (see #2778)
  7086. Note:    similar to EMS function 4Eh, except that a subrange of pages can be
  7087.       specified
  7088. SeeAlso: AH=69h
  7089. --------m-676B-------------------------------
  7090. INT 67 - DESQview 2.42-2.53 - BUG
  7091.     AH = 6Bh
  7092. Note:    the EMM.DVR portion of DESQview branches to a random location on this
  7093.       function due to a fencepost error
  7094. --------m-67DD-------------------------------
  7095. INT 67 - Quadtel QMAPS - API
  7096.     AH = DDh
  7097.     AL = function
  7098.     ???
  7099. Return: ???
  7100. Notes:    details are not yet available
  7101.     Hewlett-Packard's HPMM.SYS is a licensed version of QMAPS, and thus
  7102.       supports this API
  7103. SeeAlso: AH=3Fh,AX=FFA5h
  7104. --------E-67DE00-----------------------------
  7105. INT 67 - Virtual Control Program Interface - INSTALLATION CHECK
  7106.     AX = DE00h
  7107. Return: AH = status
  7108.         00h VCPI is present
  7109.         BH = major version number
  7110.         BL = minor version number
  7111.         nonzero  VCPI not present
  7112. BUG:    MS Windows 3.00 is reported to "object violently" to this call.
  7113. SeeAlso: INT 2F/AX=1687h
  7114. --------E-67DE01-----------------------------
  7115. INT 67 - Virtual Control Program Interface - GET PROTECTED MODE INTERFACE
  7116.     AX = DE01h
  7117.     ES:DI -> 4K page table buffer
  7118.     DS:SI -> three descriptor table entries in GDT
  7119.         first becomes code segment descriptor, other two for use by
  7120.           main control program
  7121. Return: AH = 00h successful
  7122.         DI -> first unused page table entry in buffer
  7123.         EBX -> protected mode entry point in code segment (see #2794)
  7124.     AH = nonzero  failed
  7125. Note:    protected mode entry point may be called with AX=DE00h-DE05h and
  7126.       AX=DE0Ch (in each case, all other registers as appropriate for
  7127.       the function)
  7128. SeeAlso: INT 2F/AX=1687h,INT 67/AH=3Fh
  7129.  
  7130. (Table 2794)
  7131. Call QEMM v6.03 protected mode entry point additionally with:
  7132.     AX = DF00h ???
  7133.         ???
  7134.         Return: ???
  7135.     AX = DF01h ???
  7136.         ???
  7137.         Return: ???
  7138. --------E-67DE02-----------------------------
  7139. INT 67 - Virtual Control Program Interface - GET MAX PHYSICAL MEMORY ADDRESS
  7140.     AX = DE02h
  7141. Return: AH = 00h  successful
  7142.         EDX = physical address of highest 4K memory page
  7143.     AH nonzero: failed
  7144. SeeAlso: AH=3Fh
  7145. --------E-67DE03-----------------------------
  7146. INT 67 - Virtual Control Program Interface - GET NUMBER OF FREE 4K PAGES
  7147.     AX = DE03h
  7148. Return: AH = 00h  successful
  7149.         EDX = number of free 4K pages
  7150.     AH nonzero: failed
  7151. Notes:    returns total number of pages available to ALL tasks in system
  7152.     also available in protected mode by calling the protected-mode VCPI
  7153.       entry point (see AX=DE01h,#2794)
  7154. SeeAlso: AX=DE04h
  7155. --------E-67DE04-----------------------------
  7156. INT 67 - Virtual Control Program Interface - ALLOCATE A 4K PAGE
  7157.     AX = DE04h
  7158. Return: AH = 00h successful
  7159.         EDX = physical address of allocated page
  7160.     AH nonzero: failed
  7161. Notes:    the client program is responsible for freeing all memory allocated
  7162.       with this call before terminating
  7163.     also available in protected mode by calling the protected-mode VCPI
  7164.       entry point (see AX=DE01h,#2794)
  7165. SeeAlso: AH=3Fh,AX=DE03h,AX=DE05h
  7166. --------E-67DE05-----------------------------
  7167. INT 67 - Virtual Control Program Interface - FREE 4K PAGE
  7168.     AX = DE05h
  7169.     EDX = physical address of 4K page
  7170. Return: AH = status
  7171.         00h successful
  7172.         nonzero failed
  7173. Note:    also available in protected mode by calling the protected-mode VCPI
  7174.       entry point (see AX=DE01h,#2794)
  7175. SeeAlso: AH=3Fh,AX=DE04h
  7176. --------E-67DE06-----------------------------
  7177. INT 67 - Virtual Control Program Interface - GET PHYS ADDR OF PAGE IN FIRST MB
  7178.     AX = DE06h
  7179.     CX = page number (linear address shifted right 12 bits)
  7180. Return: AH = status
  7181.         00h successful
  7182.         EDX = physical address of page
  7183.         nonzero invalid page number (AH = 8Bh recommended)
  7184. SeeAlso: AX=5BE0h
  7185. --------E-67DE07-----------------------------
  7186. INT 67 - Virtual Control Program Interface - READ CR0
  7187.     AX = DE07h
  7188. Return: AH = 00h
  7189.     EBX = value of Control Register 0
  7190. SeeAlso: AH=3Fh,AX=DE07h
  7191. --------E-67DE08-----------------------------
  7192. INT 67 - Virtual Control Program Interface - READ DEBUG REGISTERS
  7193.     AX = DE08h
  7194.     ES:DI -> array of 8 DWORDs
  7195. Return: AH = 00h
  7196.     buffer filled with DR0 first, DR7 last, DR4 and DR5 unused
  7197. SeeAlso: AH=3Fh,AX=DE09h
  7198. --------E-67DE09-----------------------------
  7199. INT 67 - Virtual Control Program Interface - SET DEBUG REGISTERS
  7200.     AX = DE09h
  7201.     ES:DI -> array of 8 DWORDs holding new values of debug registers
  7202. Return: AH = 00h
  7203. Note:    values for DR4 and DR5 ignored
  7204. SeeAlso: AH=3Fh,AX=DE08h
  7205. --------E-67DE0A-----------------------------
  7206. INT 67 - Virtual Control Program Interface - GET 8259 INTERRUPT VECTOR MAPPINGS
  7207.     AX = DE0Ah
  7208. Return: AH = 00h successful
  7209.         BX = first vector used by master 8259 (IRQ0)
  7210.         CX = first vector used by slave 8259 (IRQ8)
  7211.     AH nonzero: failed
  7212. Note:    CX is undefined in systems without a slave 8259
  7213. SeeAlso: AX=DE0Bh,INT 21/AX=250Ch,INT 31/AX=0400h
  7214. --------E-67DE0B-----------------------------
  7215. INT 67 - Virtual Control Program Interface - SET 8259 INTERRUPT VECTOR MAPPINGS
  7216.     AX = DE0Bh
  7217.     BX = first vector used by master 8259
  7218.     CX = first vector used by slave 8259
  7219.     interrupts disabled
  7220. Return: AH = 00h successful
  7221.     AH nonzero: failed
  7222. Notes:    This call merely informs the server that the client has changed the
  7223.       interrupt mappings.  The client may not change the mappings if they
  7224.       have already been changed by the server or another client, and is
  7225.       responsible for restoring the original mappings before terminating.
  7226. SeeAlso: AX=DE0Ah,INT 2C/AX=002Ah
  7227. --------E-67DE0C-----------------------------
  7228. INT 67 - Virtual Control Program Interface - SWITCH TO PROTECTED MODE
  7229.     AX = DE0Ch
  7230.     ESI = linear address in first megabyte of values for system
  7231.           registers (see #2795)
  7232.     interrupts disabled
  7233. Return: interrupts disabled
  7234.     GDTR, IDTR, LDTR, TR loaded
  7235.     SS:ESP must have at least 16 bytes space, and the entry point is
  7236.           required to set up a new stack before enabling interrupts
  7237.     EAX, ESI, DS, ES, FS, GS destroyed
  7238. Note:    in protected mode, calling the protected-mode VCPI entry point with
  7239.       AX = DE0Ch
  7240.       DS = segment selector mapping entire linear address space obtained
  7241.           via AX=DE01h
  7242.       SS:ESP in first megabyte of linear memory
  7243.       STACK:QWORD  return address from FAR call to 32-bit segment
  7244.         DWORD  EIP
  7245.         DWORD  CS
  7246.         DWORD  reserved for EFLAGS
  7247.         DWORD  ESP
  7248.         DWORD  SS
  7249.         DWORD  ES
  7250.         DWORD  DS
  7251.         DWORD  FS
  7252.         DWORD  GS
  7253.       and interrupts disabled, will switch to virtual86 mode with
  7254.         interrupts disabled, all segment registers loaded, and EAX
  7255.         destroyed.
  7256. SeeAlso: AH=3Fh,INT 15/AH=89h,INT 38/AH=10h
  7257.  
  7258. Format of system register values for switch to protected mode:
  7259. Offset    Size    Description    (Table 2795)
  7260.  00h    DWORD    value for CR3
  7261.  04h    DWORD    linear address in first megabyte of value for GDTR
  7262.  08h    DWORD    linear address in first megabyte of value for IDTR
  7263.  0Ch    WORD    value for LDTR
  7264.  0Eh    WORD    value for TR
  7265.  10h    PWORD    CS:EIP of protected mode entry-point
  7266. --------m-67DE0F-----------------------------
  7267. INT 67 - Netroom3 - ???
  7268.     AX = DE0Fh
  7269.     ???
  7270. Return: ???
  7271. Note:    called by Netroom's DPMI.EXE
  7272. --------m-67EF-------------------------------
  7273. INT 67 - RM386 v6.00+ - EXECUTE XMS FUNCTION
  7274.     AH = EFh
  7275.     AL = function (00h-12h,80h-8Fh)
  7276.     other register as appropriate for XMS function
  7277. Return: varies by function (see INT 2F/AX=4310h)
  7278. Note:    these functions appear to be equivalent to the XMS functions with the
  7279.       same numbers
  7280. SeeAlso: AX=5DFFh"RM386",INT 2F/AX=4310h
  7281. --------m-67FFA5-----------------------------
  7282. INT 67 - Microsoft EMM386.EXE v4.20+ - INSTALLATION CHECK
  7283.     AX = FFA5h
  7284. Return: AX = 845Ah/84A5h if loaded
  7285.         BX:CX -> API entry point (see #2796)
  7286. Notes:    this call is available even if EMM386 is not providing EMS
  7287.     the returned AX is 845Ah inside of MSWindows, 84A5h under bare DOS
  7288.     if no other program has hooked INT 67, an alternate installation
  7289.       check is to test for the string
  7290.       "MICROSOFT EXPANDED MEMORY MANAGER 386" at offset 14h in the INT 67
  7291.       handler's segment; the word immediately preceding this string
  7292.       contains the offset of the API entry point
  7293. SeeAlso: AH=3Fh,AX=FFA5h/BX=4345h,INT 21/AX=4402h"EMM386.EXE"
  7294.  
  7295. (Table 2796)
  7296. Call EMM386.EXE API entry point with:
  7297.     AH = 00h get memory manager's status
  7298.         Return: AH = status
  7299.             bit 0: not active (OFF)
  7300.             bit 1: in "Auto" mode
  7301.     AH = 01h set memory manager's state
  7302.         AL = new state (00h ON, 01h OFF, 02h AUTO)
  7303.     AH = 02h Weitek coprocessor support
  7304.         AL = subfunction
  7305.         00h get Weitek support state
  7306.             Return: AL = status
  7307.                 bit 0: Weitek coprocessor is present
  7308.                 bit 1: Weitek support is enabled
  7309.         01h turn on Weitek support
  7310.         02h turn off Weitek support
  7311.      --- v4.20-4.41 only ---
  7312.     AH = 03h Windows support???
  7313.         AL = subfunction (00h, 01h)
  7314.     AH = 04h print copyright notice to standard output
  7315.          (using INT 21/AH=09h)
  7316.     AH = 05h print available report
  7317.          (the one shown when running EMM386 from the DOS prompt)
  7318. SeeAlso: #0807 at INT 21/AX=4402h/SF=02h,#1865 at INT 2F/AX=12FFh/BX=0106h
  7319. --------m-67FFA5BX4345-----------------------
  7320. INT 67 U - Compaq CEMM v5.10+ - PRIVATE API
  7321.     AX = FFA5h
  7322.     BX = 4345h ("CE")
  7323.     DX = subfunction
  7324.         0000h unshadow video ROM???
  7325.         0001h shadow video ROM???
  7326.         0002h map pages
  7327.         CX = number of pages (00h=one)
  7328.         ESI = linear address of first page to map into address space
  7329.         EDI = linear starting address at which pages are to be visible
  7330.         0003h get ???
  7331.         Return: DX = ??? (0-2)
  7332.         0004h BUG: crashes system due to fencepost error
  7333. Return: AH = 84h
  7334.     AL = status (84h = error, FFh = success)
  7335. Note:    if BX <> 4345h or DX > 0004h on entry, CEMM behaves identically to
  7336.       Microsoft's EMM386 (see AX=FFA5h"EMM386")
  7337. SeeAlso: AX=FFA5h"EMM386",#0807 at INT 21/AX=4402h/SF=02h,#2796
  7338. --------I-68---------------------------------
  7339. INT 68 - Sangoma CCPOP 3270 resident module
  7340. SeeAlso: INT 67"Sangoma",INT 92"Sangoma"
  7341. --------N-68---------------------------------
  7342. INT 68 - Novell NetWare LU6.2
  7343. Note:    the installation check consists of testing for the signature string
  7344.       "APPC/PC" nine bytes before the interrupt handler
  7345. SeeAlso: AH=01h/SF=1B00h,AH=FAh
  7346. --------h-68---------------------------------
  7347. INT 68 C - HP Vectra AT - IRQ16 - 8041 SERVICE REQUEST
  7348. SeeAlso: INT 08"IRQ0",INT 69"HP Vectra",INT 6F"HP Vectra"
  7349. --------N-6801--SF1B00-----------------------
  7350. INT 68 - APPC/PC - NETWORK DEVICE CONTROL - DISPLAY
  7351.     AH = 01h subfn 1B00h
  7352.     DS:DX -> control block (see #2797)
  7353. Return: control block updated
  7354. SeeAlso: AH=01h/SF=2000h,AH=01h/SF=2B00h,INT 68"Novell"
  7355.  
  7356. Format of APPC/PC "DISPLAY" control block:
  7357. Offset    Size    Description    (Table 2797)
  7358.  00h 12 BYTEs    reserved
  7359.  0Ch    WORD    1B00h (verb "DISPLAY")
  7360.  0Eh  6 BYTEs    00h
  7361.  14h    DWORD    (big-endian) return code (see #2798)
  7362.  18h    WORD    00h
  7363.  1Ah  8 BYTEs    (big-endian) logical unit ID
  7364.  22h  8 BYTEs    (big-endian) partner logical unit name
  7365.  2Ah  8 BYTEs    (big-endian) mode name
  7366.  32h    BYTE    logical unit session limit
  7367.  33h    BYTE    partner logical unit session limit
  7368.  34h    BYTE    node maximum negotiable session limit
  7369.  35h    BYTE    current session limit
  7370.  36h    BYTE    minimum negotiated winner limit
  7371.  37h    BYTE    maximum negotiated loser limit
  7372.  38h    BYTE    active session count
  7373.  39h    BYTE    active CONWINNER session count
  7374.  3Ah    BYTE    active CONLOSER session count
  7375.  3Bh    BYTE    session termination count
  7376.  3Ch    BYTE    bit 7: SESSION_TERMINATION_TARGET_DRAIN
  7377.         bit 6: SESSION_TERMINATION_SOURCE_DRAIN
  7378.  
  7379. (Table 2798)
  7380. Values for APPC/PC return code:
  7381.  0000h    successful
  7382.  0001h    BAD_TP_ID
  7383.  0002h    BAD_CONV_ID
  7384.  0003h    bad logical unit ID
  7385.  0008h    no physical unit attached
  7386.  0110h    bad state
  7387.  01B1h    BAD_PART_LUNAME
  7388.  01B2h    bad mode name
  7389.  0201h    physical unit already active
  7390.  0211h    logical unit already active
  7391.  0212h    BAD_PART_SESS
  7392.  0213h    BAD_RU_SIZES
  7393.  0214h    BAD_MODE_SESS
  7394.  0216h    BAD_PACING_CNT
  7395.  0219h    EXTREME_RUS
  7396.  021Ah    SNASVCMG_1
  7397.  0223h    SSCP_CONNECTED_LU
  7398.  0230h    invalid change
  7399.  0243h    too many TPs
  7400.  0272h    adapter close failure
  7401.  0281h    GET_ALLOC_BAD_TYPE
  7402.  0282h    unsuccessful
  7403.  0283h    DLC failure
  7404.  0284h    unrecognized DLC
  7405.  0286h    duplicate DLC
  7406.  0301h    SSCP_PU_SESSION_NOT_ACTIVE
  7407.  0302h    data exceeds RU size
  7408.  0401h    invalid direction
  7409.  0402h    invalid type
  7410.  0403h    segment overlap
  7411.  0404h    invalid first character
  7412.  0405h    table error
  7413.  0406h    conversion error
  7414.  F0010000h    APPC disabled
  7415.  F0020000h    APPC busy
  7416.  F0030000h    APPC abended
  7417.  F0040000h    incomplete
  7418. --------N-6801--SF2000-----------------------
  7419. INT 68 - APPC/PC - NETWORK DEVICE CONTROL - ATTACH PHYSICAL UNIT
  7420.     AH = 01h subfn 2000h
  7421.     DS:DX -> control block (see #2799)
  7422. Return: control block updated
  7423. SeeAlso: AH=01h/SF=2100h,AH=01h/SF=2B00h
  7424.  
  7425. Format of APPC/PC "Attach Physical Unit" control block:
  7426. Offset    Size    Description    (Table 2799)
  7427.  00h 12 BYTEs    reserved
  7428.  0Ch    WORD    2000h (verb "Attach Physical Unit")
  7429.  0Eh  6 BYTEs    00h
  7430.  14h    DWORD    (big-endian) return code (see #2798)
  7431.  18h    WORD    00h
  7432.  1Ah    BYTE    version
  7433.  1Bh    BYTE    release
  7434.  1Ch  8 BYTEs    (big-endian) net name
  7435.  24h  8 BYTEs    (big-endian) physical unit name
  7436.  2Ch  8 BYTEs    00h
  7437.  34h    DWORD    pointer to SYSTEM_LOG_EXIT routine, FFFFFFFFh=don't log errors
  7438.         (see also AH=01h/SF=2100h)
  7439.  38h    DWORD    00h
  7440.  3Ch    BYTE    00h RETURN_CONTROL: COMPLETE
  7441.         01h RETURN_CONTROL: INCOMPLETE
  7442. --------N-6801--SF2100-----------------------
  7443. INT 68 - APPC/PC - NETWORK DEVICE CONTROL - ATTACH LOGICAL UNIT
  7444.     AH = 01h subfn 2100h
  7445.     DS:DX -> control block (see #2800)
  7446. Return: control block updated
  7447. SeeAlso: #2803,#2804,#2806,AH=01h/SF=2000h,AH=01h/SF=2200h,AH=01h/SF=2B00h
  7448.  
  7449. Format of APPC/PC "Attach Logical Unit" control block:
  7450. Offset    Size    Description    (Table 2800)
  7451.  00h 12 BYTEs    reserved
  7452.  0Ch    WORD    2100h (verb "Attach Logical Unit")
  7453.  0Eh  6 BYTEs    00h
  7454.  14h    DWORD    (big-endian) return code (see #2798)
  7455.  18h    WORD    70  offset to partner logical unit record
  7456.  1Ah  8 BYTEs    (big-endian) logical unit name
  7457.  22h  8 BYTEs    (big-endian) logical unit ID
  7458.  2Ah    BYTE    logical unit local address
  7459.  2Bh    BYTE    logical unit session limit
  7460.  2Ch    DWORD    pointer to CREATE_TP_EXIT routine,
  7461.         FFFFFFFFh = reject incoming ALLOCATEs
  7462.         00000000h = queue ALLOCATEs
  7463.  30h    DWORD    00h
  7464.  34h    DWORD    pointer to SYSTEM_LOG_EXIT routine, FFFFFFFFh=don't log errors
  7465.  38h    DWORD    00h
  7466.  3Ch    BYTE    maximum TPs
  7467.  3Dh    BYTE    queue depth
  7468.  3Eh    DWORD    pointer to LU_LU_PASSWORD_EXIT routine, FFFFFFFFh=no pswd exit
  7469.  42h    DWORD    00h
  7470.  46h    WORD    total length of partner records
  7471.  48h    var    array of partner logical unit records (see #2801)
  7472. SeeAlso: #2803,#2804,#2806
  7473.  
  7474. Format of APPC/PC partner logical unit record:
  7475. Offset    Size    Description    (Table 2801)
  7476.  00h    WORD    length of this partner logical unit record
  7477.  02h    WORD    42  offset to mode records
  7478.  04h  8 BYTEs    (big-endian) partner logical unit name
  7479.  0Ch    BYTE    partner logical unit security capabilities
  7480.         bit 7: already verified
  7481.         bit 6: conversation level security
  7482.         bit 5: session level security
  7483.  0Dh    BYTE    partner logical unit session limit
  7484.  0Eh    WORD    partner logical unit maximum MC_SEND_LL
  7485.  10h  8 BYTEs    (big-endian) partner logical unit DLC name
  7486.  18h    BYTE    partner logical unit adapter number
  7487.  19h 17 BYTEs    (counted string) partner logical unit adapter address
  7488.  2Ah    WORD    total length of mode records
  7489.  2Ch 16N BYTEs    array of mode records (see #2802)
  7490.  
  7491. Format of mode record:
  7492. Offset    Size    Description    (Table 2802)
  7493.  00h    WORD    16  length of this mode record
  7494.  02h  8 BYTEs    (big-endian) mode name
  7495.  0Ah    WORD    RU_SIZE high bound
  7496.  0Ch    WORD    RU_SIZE low bound
  7497.  0Eh    BYTE    mode maximum negotiable session limit
  7498.  0Fh    BYTE    pacing size for receive
  7499.  
  7500. Routines defined by LU_LU_PASSWORD_EXIT, CREATE_TP_EXIT, and SYSTEM_LOG_EXIT
  7501. pointers are called by pushing the DWORD pointer to the verb on the stack and
  7502. then performing a FAR call.
  7503.  
  7504. Format of ACCESS_LU_LU_PW verb:
  7505. Offset    Size    Description    (Table 2803)
  7506.  00h 12 BYTEs    reserved
  7507.  0Ch    WORD    1900h (verb "ACCESS_LU_LU_PW")
  7508.  0Eh  8 BYTEs    (big-endian) logical unit ID
  7509.  16h  8 BYTEs    (big-endian) logical unit name
  7510.  1Eh  8 BYTEs    (big-endian) partner logical unit name
  7511.  26h 17 BYTEs    (counted string) partner fully qualified logical unit name
  7512.  37h    BYTE    password available (0=no, 1=yes)
  7513.  38h  8 BYTEs    password
  7514. SeeAlso: #2800,#2804,#2806
  7515.  
  7516. Format of CREATE_TP verb:
  7517. Offset    Size    Description    (Table 2804)
  7518.  00h 12 BYTEs    reserved
  7519.  0Ch    WORD    2300h (verb "CREATE_TP")
  7520.  0Eh  6 BYTEs    00h
  7521.  14h    DWORD    (big-endian) sense code (see #2805)
  7522.  18h  8 BYTEs    (big-endian) TP ID
  7523.  20h  8 BYTEs    (big-endian) logical unit ID
  7524.  28h    DWORD    (big-endian) conversation ID
  7525.  2Ch    BYTE    0 basic conversation, 1 mapped conversation
  7526.  2Dh    BYTE    0 no sync level, 1 confirm
  7527.  2Eh    BYTE    reserved
  7528.  2Fh 65 BYTEs    (counted string) transaction program name
  7529.  70h  6 BYTEs    00h
  7530.  76h    WORD    length of ERROR_LOG_DATA to return
  7531.  78h    DWORD    pointer to ERROR_LOG_DATA buffer
  7532.  7Ch  8 BYTEs    (big-endian) partner logical unit name
  7533.  84h 18 BYTEs    (counted string) partner fully qualified logical unit name
  7534.  96h  8 BYTEs    (big-endian) mode name
  7535.  9Eh 12 BYTEs    00h
  7536.  AAh 11 BYTEs    (counted string) password
  7537.  B5h 11 BYTEs    (counted string) user ID
  7538.  C0h    BYTE    0 verification should be performed
  7539.         1 already verified
  7540. SeeAlso: #2803,#2806
  7541.  
  7542. (Table 2805)
  7543. Values for APPC/PC sense code:
  7544.  00000000h    Ok
  7545.  080F6051h    SECURITY_NOT_VALID
  7546.  084B6031h    TP_NOT_AVAIL_RETRY
  7547.  084C0000h    TP_NOT_AVAIL_NO_RETRY
  7548.  10086021h    TP_NAME_NOT_RECOGNIZED
  7549.  10086034h    CONVERSATION_TYPE_MISMATCH
  7550.  10086041h    SYNC_LEVEL_NOT_SUPPORTED
  7551.  
  7552. Format of SYSLOG verb:
  7553. Offset    Size    Description    (Table 2806)
  7554.  00h 12 BYTEs    reserved
  7555.  0Ch    WORD    2600h (verb "SYSLOG")
  7556.  0Eh 10 BYTEs    00h
  7557.  18h    WORD    (big-endian) type
  7558.  1Ah    DWORD    (big-endian) subtype
  7559.  1Eh    DWORD    pointer to ADDITIONAL_INFO
  7560.  22h    DWORD    (big-endian) conversation ID
  7561.  26h  8 BYTEs    (big-endian) TP ID
  7562.  2Eh  8 BYTEs    (big-endian) physical unit or logical unit name
  7563.  36h    WORD    length of data
  7564.  38h    DWORD    pointer to data
  7565.  3Ch    BYTE    00h
  7566. SeeAlso: #2803,#2804
  7567. --------N-6801--SF2200-----------------------
  7568. INT 68 - APPC/PC - NETWORK DEVICE CONTROL - DETACH LOGICAL UNIT
  7569.     AH = 01h subfn 2200h
  7570.     DS:DX -> control block (see #2807)
  7571. Return: control block updated
  7572. SeeAlso: AH=01h/SF=2000h,AH=01h/SF=2100h,AH=01h/SF=2700h
  7573.  
  7574. Format of APPC/PC "Detach Logical Unit" control block:
  7575. Offset    Size    Description    (Table 2807)
  7576.  00h 12 BYTEs    reserved
  7577.  0Ch    WORD    2200h (verb "Detach Logical Unit")
  7578.  0Eh  6 BYTEs    00h
  7579.  14h    DWORD    (big-endian) return code (see #2798)
  7580.  18h  8 BYTEs    (big-endian) logical unit ID
  7581.  20h    BYTE    00h
  7582. --------N-6801--SF2700-----------------------
  7583. INT 68 - APPC/PC - NETWORK DEVICE CONTROL - DETACH PHYSICAL UNIT
  7584.     AH = 01h subfn 2700h
  7585.     DS:DX -> control block (see #2808)
  7586. Return: control block updated
  7587. SeeAlso: AH=01h/SF=2000h,AH=01h/SF=2100h,AH=01h/SF=2200h
  7588.  
  7589. Format of APPC/PC "Detach Physical Unit" control block:
  7590. Offset    Size    Description    (Table 2808)
  7591.  00h 12 BYTEs    reserved
  7592.  0Ch    WORD    2700h (verb "Detach Physical Unit")
  7593.  0Eh  6 BYTEs    00h
  7594.  14h    DWORD    (big-endian) return code (see #2798)
  7595.  18h    BYTE    00h  type: hard
  7596.         01h  type: soft
  7597. --------N-6801--SF2B00-----------------------
  7598. INT 68 - APPC/PC - NETWORK DEVICE CONTROL - ACTIVATE DLC
  7599.     AH = 01h subfn 2B00h
  7600.     DS:DX -> control block (see #2809)
  7601. Return: control block updated
  7602. SeeAlso: AH=01h/SF=1B00h,AH=01h/SF=2000h
  7603.  
  7604. Format of APPC/PC "Activate DLC" control block:
  7605. Offset    Size    Description    (Table 2809)
  7606.  00h 12 BYTEs    reserved
  7607.  0Ch    WORD    2B00h (verb "Activate DLC")
  7608.  0Eh  6 BYTEs    00h
  7609.  14h    DWORD    (big-endian) return code (see #2798)
  7610.  18h  8 BYTEs    (big-endian) DLC name
  7611.  20h    BYTE    adapter number
  7612. --------N-6802--SF0100-----------------------
  7613. INT 68 - APPC/PC - CONNECTION CONTROL - ALLOCATE
  7614.     AH = 02h subfn 0100h
  7615.     DS:DX -> control block (see #2810)
  7616. Return: control block updated
  7617. SeeAlso: AH=02h/SF=0500h
  7618.  
  7619. Format of APPC/PC "Allocate" control block:
  7620. Offset    Size    Description    (Table 2810)
  7621.  00h 12 BYTEs    reserved
  7622.  0Ch    WORD    0100h (verb "Allocate" or "MC_Allocate")
  7623.  0Eh    BYTE    1 if MC_ (mapped conversation) form of verb
  7624.         0 if basic verb
  7625.  0Fh  5 BYTEs    reserved (0)
  7626.  14h    WORD    (big-endian) primary return code (see #2811)
  7627.  16h    DWORD    (big-endian) error code (see #2812)
  7628.  1Ah  8 BYTEs    (big-endian) TP_ID
  7629.  22h    DWORD    (big-endian) conversation ID
  7630.  26h    BYTE    (MC_Allocate only) conversation type
  7631.         0 basic conversation
  7632.         1 mapped conversation
  7633.  27h    BYTE    SYNC_LEVEL (00h none, 01h confirm)
  7634.  28h    WORD    0000h
  7635.  2Ah    BYTE    RETURN_CONTROL
  7636.         00h when session allocated
  7637.         01h immediate
  7638.         02h when session free
  7639.  2Bh  8 BYTEs    00h
  7640.  33h  8 BYTEs    (big-endian) partner logical unit name
  7641.  3Bh  8 BYTEs    (big-endian) mode name
  7642.  43h 65 BYTEs    (counted string) TP name
  7643.  84h    BYTE    security (00h none, 01h same, 02h pgm)
  7644.  85h 11 BYTEs    00h
  7645.  90h 11 BYTEs    (counted string) password
  7646.  9Bh 11 BYTEs    (counted string) user ID
  7647.  A6h    WORD    PIP_DATA length
  7648.  A8h    DWORD    pointer to PIP_DATA
  7649.  
  7650. (Table 2811)
  7651. Values for APPC/PC primary return code:
  7652.  0000h    successful
  7653.  0001h    parameter check
  7654.  0002h    state check
  7655.  0003h    allocation error
  7656.  0005h    deallocate abended
  7657.  0006h    deallocate abended program
  7658.  0007h    deallocate abended SVC
  7659.  0008h    deallocate abended timer
  7660.  0009h    deallocate normal return
  7661.  000Ah    data posting blocked
  7662.  000Bh    posting not active
  7663.  000Ch    PROG_ERROR_NO_TRUNC
  7664.  000Dh    PROG_ERROR_TRUNC
  7665.  000Eh    PROG_ERROR_PURGING
  7666.  000Fh    CONV_FAILURE_RETRY
  7667.  0010h    CONV_FAILURE_NO_RETRY
  7668.  0011h    SVC_ERROR_NO_TRUNC
  7669.  0012h    SVC_ERROR_TRUNC
  7670.  0013h    SVC_ERROR_PURGING
  7671.  0014h    unsuccessful
  7672.  0018h    CNOS partner logical unit reject
  7673.  0019h    conversation type mixed
  7674.  F001h    APPC disabled
  7675.  F002h    APPC busy
  7676.  F003h    APPC abended
  7677.  F004h    incomplete
  7678.  
  7679. (Table 2812)
  7680. Values for APPC/PC error code:
  7681.  0001h    bad TP ID
  7682.  0002h    bad conversation ID
  7683.  0004h    allocation error, no retry
  7684.  0005h    allocation error, retry
  7685.  0006h    data area crosses segment boundary
  7686.  0010h    bad TPN length
  7687.  0011h    bad CONV length
  7688.  0012h    bad SYNC level
  7689.  0013h    bad security selection
  7690.  0014h    bad return control
  7691.  0015h    SEC_TOKENS too big
  7692.  0016h    PIP_LEN incorrect
  7693.  0017h    no use of SNASVCMG
  7694.  0018h    unknown partner mode
  7695.  0031h    confirm: SYNC_NONE
  7696.  0032h    confirm: bad state
  7697.  0033h    confirm: NOT_LL_BDY
  7698.  0041h    confirmed: bad state
  7699.  0051h    deallocate: bad type
  7700.  0052h    deallocate: flush bad state
  7701.  0053h    deallocate: confirm bad state
  7702.  0055h    deallocate: NOT_LL_BDY
  7703.  0057h    deallocate: log LL_WRONG
  7704.  0061h    flush: not send state
  7705.  0091h    post on receipt: invalid length
  7706.  0092h    post on receipt: not in receive state
  7707.  0093h    post on receipt: bad fill
  7708.  00A1h    prepare to receive:invalid type
  7709.  00A2h    prepare to receive: unfinished LL
  7710.  00A3h    prepare to receive: not in send state
  7711.  00B1h    receive and wait: bad state
  7712.  00B2h    receive and wait: NOT_LL_BDY
  7713.  00B5h    receive and wait: bad fill
  7714.  00C1h    receive immediate: not in receive state
  7715.  00C4h    receive immediate: bad fill
  7716.  00E1h    request to send: not in receive state
  7717.  00F1h    send data: bad LL
  7718.  00F2h    send data: not in send state
  7719.  0102h    send error: log LL wrong
  7720.  0103h    send error: bad type
  7721.  0121h    test: invalid type
  7722.  0122h    test: not in receive state
  7723. --------N-6802--SF0300-----------------------
  7724. INT 68 - APPC/PC - CONNECTION CONTROL - CONFIRM
  7725.     AH = 02h subfn 0300h
  7726.     DS:DX -> control block (see #2813)
  7727. Return: control block updated
  7728. SeeAlso: AH=02h/SF=0400h
  7729.  
  7730. Format of APPC/PC "Confirm" control block:
  7731. Offset    Size    Description    (Table 2813)
  7732.  00h 12 BYTEs    reserved
  7733.  0Ch    WORD    0300h (verb "Confirm" or "MC_Confirm")
  7734.  0Eh    BYTE    1 if MC_ (mapped conversation) form of verb
  7735.         0 if basic verb
  7736.  0Fh  5 BYTEs    reserved (0)
  7737.  14h    WORD    (big-endian) primary return code (see #2811)
  7738.  16h    DWORD    (big-endian) error code (see #2812)
  7739.  1Ah  8 BYTEs    (big-endian) TP_ID
  7740.  22h    DWORD    (big-endian) conversation ID
  7741.  26h    BYTE    request to send received (0=no, 1=yes)
  7742. --------N-6802--SF0400-----------------------
  7743. INT 68 - APPC/PC - CONNECTION CONTROL - CONFIRMED
  7744.     AH = 02h subfn 0400h
  7745.     DS:DX -> control block (see #2814)
  7746. Return: control block updated
  7747. SeeAlso: AH=02h/SF=0300h
  7748.  
  7749. Format of APPC/PC "Confirmed" control block:
  7750. Offset    Size    Description    (Table 2814)
  7751.  00h 12 BYTEs    reserved
  7752.  0Ch    WORD    0400h (verb "Confirmed" or "MC_Confirmed")
  7753.  0Eh    BYTE    1 if MC_ (mapped conversation) form of verb
  7754.         0 if basic verb
  7755.  0Fh  5 BYTEs    reserved (0)
  7756.  14h    WORD    (big-endian) primary return code (see #2811)
  7757.  16h    DWORD    (big-endian) error code (see #2812)
  7758.  1Ah  8 BYTEs    (big-endian) TP_ID
  7759.  22h    DWORD    (big-endian) conversation ID
  7760. --------N-6802--SF0500-----------------------
  7761. INT 68 - APPC/PC - CONNECTION CONTROL - DEALLOCATE
  7762.     AH = 02h subfn 0500h
  7763.     DS:DX -> control block (see #2815)
  7764. Return: control block updated
  7765. SeeAlso: AH=02h/SF=0100h,AH=02h/SF=0300h
  7766.  
  7767. Format of APPC/PC "Deallocate" control block:
  7768. Offset    Size    Description    (Table 2815)
  7769.  00h 12 BYTEs    reserved
  7770.  0Ch    WORD    0500h (verb "Deallocate" or "MC_Deallocate")
  7771.  0Eh    BYTE    1 if MC_ (mapped conversation) form of verb
  7772.         0 if basic verb
  7773.  0Fh  5 BYTEs    reserved (0)
  7774.  14h    WORD    (big-endian) primary return code (see #2811)
  7775.  16h    DWORD    (big-endian) error code (see #2812)
  7776.  1Ah  8 BYTEs    (big-endian) TP_ID
  7777.  22h    DWORD    (big-endian) conversation ID
  7778.  26h    BYTE    00h
  7779.  27h    BYTE    type
  7780.         00h SYNC_LEVEL
  7781.         01h FLUSH
  7782.         02h ABEND_PROC
  7783.         03h ABEND_SVC
  7784.         04h ABEND_TIMER
  7785.         05h ABEND
  7786.  28h    WORD    (MC_Deallocate only) length of error log data
  7787.  2Ah    DWORD    (MC_Deallocate only) pointer to error log data
  7788. --------N-6802--SF0600-----------------------
  7789. INT 68 - APPC/PC - CONNECTION CONTROL - FLUSH
  7790.     AH = 02h subfn 0600h
  7791.     DS:DX -> control block (see #2816)
  7792. Return: control block updated
  7793. SeeAlso: AH=02h/SF=0300h
  7794.  
  7795. Format of APPC/PC "Flush" control block:
  7796. Offset    Size    Description    (Table 2816)
  7797.  00h 12 BYTEs    reserved
  7798.  0Ch    WORD    0600h (verb "Flush" or "MC_Flush")
  7799.  0Eh    BYTE    1 if MC_ (mapped conversation) form of verb
  7800.         0 if basic verb
  7801.  0Fh  5 BYTEs    reserved (0)
  7802.  14h    WORD    (big-endian) primary return code (see #2811)
  7803.  16h    DWORD    (big-endian) error code (see #2812)
  7804.  1Ah  8 BYTEs    (big-endian) TP_ID
  7805.  22h    DWORD    (big-endian) conversation ID
  7806. --------N-6802--SF0700-----------------------
  7807. INT 68 - APPC/PC - CONNECTION CONTROL - GET ATTRIBUTES
  7808.     AH = 02h subfn 0700h
  7809.     DS:DX -> control block (see #2817)
  7810. Return: control block updated
  7811. SeeAlso: AH=02h/SF=0300h
  7812.  
  7813. Format of APPC/PC "Get_Attributes" control block:
  7814. Offset    Size    Description    (Table 2817)
  7815.  00h 12 BYTEs    reserved
  7816.  0Ch    WORD    0700h (verb "Get_Attributes" or "MC_Get_Attributes")
  7817.  0Eh    BYTE    1 if MC_ (mapped conversation) form of verb
  7818.         0 if basic verb
  7819.  0Fh  5 BYTEs    reserved (0)
  7820.  14h    WORD    (big-endian) primary return code (see #2811)
  7821.  16h    DWORD    (big-endian) error code (see #2812)
  7822.  1Ah  8 BYTEs    (big-endian) TP_ID
  7823.  22h    DWORD    (big-endian) conversation ID
  7824.  26h  8 BYTEs    (big-endian) logical unit ID
  7825.  2Eh    BYTE    00h
  7826.  2Fh    BYTE    SYNC_LEVEL (0=none, 1=confirm)
  7827.  30h  8 BYTEs    (big-endian) mode name
  7828.  38h  8 BYTEs    (big-endian) own net name
  7829.  40h  8 BYTEs    (big-endian) own logical unit name
  7830.  48h  8 BYTEs    (big-endian) partner logical unit name
  7831.  50h 18 BYTEs    (counted string) partner's fully qualified logical unit name
  7832.  62h    BYTE    00h
  7833.  63h 11 BYTEs    (counted string) user ID
  7834. --------N-6802--SF0800-----------------------
  7835. INT 68 - APPC/PC - CONNECTION CONTROL - GET CONVERSATION TYPE
  7836.     AH = 02h subfn 0800h
  7837.     DS:DX -> control block (see #2818)
  7838. Return: control block updated
  7839. SeeAlso: AH=02h/SF=0300h
  7840.  
  7841. Format of APPC/PC "Get_Type" control block:
  7842. Offset    Size    Description    (Table 2818)
  7843.  00h 12 BYTEs    reserved
  7844.  0Ch    WORD    0800h (verb "Get_Type")
  7845.  0Eh    BYTE    1 if MC_ (mapped conversation) form of verb
  7846.         0 if basic verb
  7847.  0Fh  5 BYTEs    reserved (0)
  7848.  14h    WORD    (big-endian) primary return code (see #2811)
  7849.  16h    DWORD    (big-endian) error code (see #2812)
  7850.  1Ah  8 BYTEs    (big-endian) TP_ID
  7851.  22h    DWORD    (big-endian) conversation ID
  7852.  26h    BYTE    (ret) type (0=basic conversation, 1=mapped conversation)
  7853. --------N-6802--SF0900-----------------------
  7854. INT 68 - APPC/PC - CONNECTION CONTROL - POST ON RECEIPT
  7855.     AH = 02h subfn 0900h
  7856.     DS:DX -> control block (see #2819)
  7857. Return: control block updated
  7858. SeeAlso: AH=02h/SF=0A00h
  7859.  
  7860. Format of APPC/PC "Post_on_Receipt" control block:
  7861. Offset    Size    Description    (Table 2819)
  7862.  00h 12 BYTEs    reserved
  7863.  0Ch    WORD    0900h (verb "Post_on_Receipt")
  7864.  0Eh    BYTE    1 if MC_ (mapped conversation) form of verb
  7865.         0 if basic verb
  7866.  0Fh  5 BYTEs    reserved (0)
  7867.  14h    WORD    (big-endian) primary return code (see #2811)
  7868.  16h    DWORD    (big-endian) error code (see #2812)
  7869.  1Ah  8 BYTEs    (big-endian) TP_ID
  7870.  22h    DWORD    (big-endian) conversation ID
  7871.  26h    WORD    maximum length
  7872.  28h    BYTE    fill (0=buffer, 1=LL)
  7873. --------N-6802--SF0A00-----------------------
  7874. INT 68 - APPC/PC - CONNECTION CONTROL - PREPARE TO RECEIVE
  7875.     AH = 02h subfn 0A00h
  7876.     DS:DX -> control block (see #2820)
  7877. Return: control block updated
  7878. SeeAlso: AH=02h/SF=0900h,AH=02h/SF=0B00h
  7879.  
  7880. Format of APPC/PC "Prepare_to_Receive" control block:
  7881. Offset    Size    Description    (Table 2820)
  7882.  00h 12 BYTEs    reserved
  7883.  0Ch    WORD    0A00h (verb "Prepare_to_Receive" or "MC_Prepare_to_Receive")
  7884.  0Eh    BYTE    1 if MC_ (mapped conversation) form of verb
  7885.         0 if basic verb
  7886.  0Fh  5 BYTEs    reserved (0)
  7887.  14h    WORD    (big-endian) primary return code (see #2811)
  7888.  16h    DWORD    (big-endian) error code (see #2812)
  7889.  1Ah  8 BYTEs    (big-endian) TP_ID
  7890.  22h    DWORD    (big-endian) conversation ID
  7891.  26h    BYTE    type (0=SYNC_LEVEL, 1=FLUSH)
  7892.  27h    BYTE    locks (0=short, 1=long)
  7893. --------N-6802--SF0B00-----------------------
  7894. INT 68 - APPC/PC - CONNECTION CONTROL - RECEIVE AND WAIT
  7895.     AH = 02h subfn 0B00h
  7896.     DS:DX -> control block (see #2821)
  7897. Return: control block updated
  7898. SeeAlso: AH=02h/SF=0C00h,AH=02h/SF=0F00h
  7899.  
  7900. Format of APPC/PC "Receive_and_Wait" control block:
  7901. Offset    Size    Description    (Table 2821)
  7902.  00h 12 BYTEs    reserved
  7903.  0Ch    WORD    0B00h (verb "Receive_and_Wait" or "MC_Receive_and_Wait")
  7904.  0Eh    BYTE    1 if MC_ (mapped conversation) form of verb
  7905.         0 if basic verb
  7906.  0Fh  5 BYTEs    reserved (0)
  7907.  14h    WORD    (big-endian) primary return code (see #2811)
  7908.  16h    DWORD    (big-endian) error code (see #2812)
  7909.  1Ah  8 BYTEs    (big-endian) TP_ID
  7910.  22h    DWORD    (big-endian) conversation ID
  7911.  26h    BYTE    type of information received (see #2822)
  7912.  27h    BYTE    (MC_Receive_and_Wait only) fill (0=buffer, 1=LL)
  7913.  28h    BYTE    Request_to_Send_Received (0=no, 1=yes)
  7914.  29h    WORD    maximum length
  7915.  2Bh    WORD    data length
  7916.  2Dh    DWORD    pointer to data
  7917.  
  7918. (Table 2822)
  7919. Values for type of information received:
  7920.  00h    data
  7921.  01h    data complete
  7922.  02h    data incomplete
  7923.  03h    confirm
  7924.  04h    confirm send
  7925.  05h    confirm deallocate
  7926.  06h    send
  7927. --------N-6802--SF0C00-----------------------
  7928. INT 68 - APPC/PC - CONNECTION CONTROL - RECEIVE IMMEDIATE
  7929.     AH = 02h subfn 0C00h
  7930.     DS:DX -> control block (see #2823)
  7931. Return: control block updated
  7932. SeeAlso: AH=02h/SF=0B00h,AH=02h/SF=0F00h
  7933.  
  7934. Format of APPC/PC "Receive_Immediate" control block:
  7935. Offset    Size    Description    (Table 2823)
  7936.  00h 12 BYTEs    reserved
  7937.  0Ch    WORD    0C00h (verb "Receive_Immediate" or "MC_Receive_Immediate")
  7938.  0Eh    BYTE    1 if MC_ (mapped conversation) form of verb
  7939.         0 if basic verb
  7940.  0Fh  5 BYTEs    reserved (0)
  7941.  14h    WORD    (big-endian) primary return code (see #2811)
  7942.  16h    DWORD    (big-endian) error code (see #2812)
  7943.  1Ah  8 BYTEs    (big-endian) TP_ID
  7944.  22h    DWORD    (big-endian) conversation ID
  7945.  26h    BYTE    type of information received (see #2822)
  7946.  27h    BYTE    (MC_Receive_Immediate only) fill (0=buffer, 1=LL)
  7947.  28h    BYTE    Request_to_Send_Received (0=no, 1=yes)
  7948.  29h    WORD    maximum length
  7949.  2Bh    WORD    data length
  7950.  2Dh    DWORD    pointer to data
  7951. --------N-6802--SF0E00-----------------------
  7952. INT 68 - APPC/PC - CONNECTION CONTROL - REQUEST TO SEND
  7953.     AH = 02h subfn 0E00h
  7954.     DS:DX -> control block (see #2824)
  7955. Return: control block updated
  7956. SeeAlso: AH=02h/SF=0F00h,AH=02h/SF=1000h
  7957.  
  7958. Format of APPC/PC "Request_to_Send" control block:
  7959. Offset    Size    Description    (Table 2824)
  7960.  00h 12 BYTEs    reserved
  7961.  0Ch    WORD    0E00h (verb "Request_to_Send" or "MC_Request_to_Send")
  7962.  0Eh    BYTE    1 if MC_ (mapped conversation) form of verb
  7963.         0 if basic verb
  7964.  0Fh  5 BYTEs    reserved (0)
  7965.  14h    WORD    (big-endian) primary return code (see #2811)
  7966.  16h    DWORD    (big-endian) error code (see #2812)
  7967.  1Ah  8 BYTEs    (big-endian) TP_ID
  7968.  22h    DWORD    (big-endian) conversation ID
  7969. --------N-6802--SF0F00-----------------------
  7970. INT 68 - APPC/PC - CONNECTION CONTROL - SEND DATA
  7971.     AH = 02h subfn 0F00h
  7972.     DS:DX -> control block (see #2825)
  7973. Return: control block updated
  7974. SeeAlso: AH=02h/SF=0E00h,AH=02h/SF=1000h
  7975.  
  7976. Format of APPC/PC "Send_Data" control block:
  7977. Offset    Size    Description    (Table 2825)
  7978.  00h 12 BYTEs    reserved
  7979.  0Ch    WORD    0F00h (verb "Send_Data" or "MC_Send_Data")
  7980.  0Eh    BYTE    1 if MC_ (mapped conversation) form of verb
  7981.         0 if basic verb
  7982.  0Fh  5 BYTEs    reserved (0)
  7983.  14h    WORD    (big-endian) primary return code (see #2811)
  7984.  16h    DWORD    (big-endian) error code (see #2812)
  7985.  1Ah  8 BYTEs    (big-endian) TP_ID
  7986.  22h    DWORD    (big-endian) conversation ID
  7987.  26h    BYTE    request to send received (0=no, 1=yes)
  7988.  27h    BYTE    00h
  7989.  28h    WORD    data length
  7990.  2Ah    DWORD    pointer to data
  7991. --------N-6802--SF1000-----------------------
  7992. INT 68 - APPC/PC - CONNECTION CONTROL - SEND ERROR
  7993.     AH = 02h subfn 1000h
  7994.     DS:DX -> control block (see #2826)
  7995. Return: control block updated
  7996. SeeAlso: AH=02h/SF=0F00h
  7997.  
  7998. Format of APPC/PC "Send_Error" control block:
  7999. Offset    Size    Description    (Table 2826)
  8000.  00h 12 BYTEs    reserved
  8001.  0Ch    WORD    1000h (verb "Send_Error" or "MC_Send_Error")
  8002.  0Eh    BYTE    1 if MC_ (mapped conversation) form of verb
  8003.         0 if basic verb
  8004.  0Fh  5 BYTEs    reserved (0)
  8005.  14h    WORD    (big-endian) primary return code (see #2811)
  8006.  16h    DWORD    (big-endian) error code (see #2812)
  8007.  1Ah  8 BYTEs    (big-endian) TP_ID
  8008.  22h    DWORD    (big-endian) conversation ID
  8009.  26h    BYTE    request to send received (0=no, 1=yes)
  8010.  27h    BYTE    type (0=program, 1=SVC)
  8011.  28h    DWORD    00h
  8012.  2Ch    WORD    (MC_Send_Error only) LOG_DATA length
  8013.  2Eh    DWORD    (MC_Send_Error only) pointer to LOG_DATA
  8014. --------N-6802--SF1200-----------------------
  8015. INT 68 - APPC/PC - CONNECTION CONTROL - TEST
  8016.     AH = 02h subfn 1200h
  8017.     DS:DX -> control block (see #2827)
  8018. Return: control block updated
  8019. SeeAlso: AH=02h/SF=1300h
  8020.  
  8021. Format of APPC/PC "Test" control block:
  8022. Offset    Size    Description    (Table 2827)
  8023.  00h 12 BYTEs    reserved
  8024.  0Ch    WORD    1200h (verb "Test" or "MC_Test")
  8025.  0Eh    BYTE    1 if MC_ (mapped conversation) form of verb
  8026.         0 if basic verb
  8027.  0Fh  5 BYTEs    reserved (0)
  8028.  14h    WORD    (big-endian) primary return code (see #2811)
  8029.  16h    DWORD    (big-endian) error code (see #2812)
  8030.  1Ah  8 BYTEs    (big-endian) TP_ID
  8031.  22h    DWORD    (big-endian) conversation ID
  8032.  26h    BYTE    (MC_Test only) test (0=posted, 1=request_to_send received)
  8033. Note:    error code has different interpretations for:
  8034.     0 posted data
  8035.     1 posted not data (primary return code = 0)
  8036.     1 bad TP_ID (primary return code = 1)
  8037. --------N-6802--SF1300-----------------------
  8038. INT 68 - APPC/PC - CONNECTION CONTROL - WAIT
  8039.     AH = 02h subfn 1300h
  8040.     DS:DX -> control block (see #2828)
  8041. Return: control block updated
  8042. SeeAlso: AH=02h/SF=1200h
  8043.  
  8044. Format of APPC/PC "Wait" control block:
  8045. Offset    Size    Description    (Table 2828)
  8046.  00h 12 BYTEs    reserved
  8047.  0Ch    WORD    1300h (verb "Wait")
  8048.  0Eh    BYTE    1 if MC_ (mapped conversation) form of verb
  8049.         0 if basic verb
  8050.  0Fh  5 BYTEs    reserved (0)
  8051.  14h    WORD    (big-endian) primary return code (see #2811)
  8052.  16h    DWORD    (big-endian) error code (see #2812,#2827)
  8053.  1Ah  8 BYTEs    (big-endian) TP_ID
  8054.  22h    DWORD    (big-endian) conversation ID
  8055.  26h    BYTE    number of conversations to wait on
  8056.         Note: error codes have interpretations as for AH=02h/SF=1200h
  8057. --------N-6803--SF2400-----------------------
  8058. INT 68 - APPC/PC - TP STARTED
  8059.     AH = 03h subfn 2400h
  8060.     DS:DX -> control block (see #2829)
  8061. Return: control block updated
  8062.  
  8063. Format of APPC/PC "TP Started" control block:
  8064. Offset    Size    Description    (Table 2829)
  8065.  00h 12 BYTEs    reserved
  8066.  0Ch    WORD    2400h (verb "TP Started")
  8067.  0Eh  6 BYTEs    00h
  8068.  14h    DWORD    (big-endian) return code (see #2798)
  8069.  18h    WORD    00h
  8070.  1Ah  8 BYTEs    (big-endian) logical unit ID
  8071.  22h  8 BYTEs    (big-endian) TP ID
  8072. --------N-6803--SF2800-----------------------
  8073. INT 68 - APPC/PC - GET ALLOCATE
  8074.     AH = 03h subfn 2800h
  8075.     DS:DX -> control block (see #2830)
  8076. Return: control block updated
  8077.  
  8078. Format of APPC/PC "Get ALLOCATE" control block:
  8079. Offset    Size    Description    (Table 2830)
  8080.  00h 12 BYTEs    reserved
  8081.  0Ch    WORD    2800h (verb "Get ALLOCATE")
  8082.  0Eh  6 BYTEs    00h
  8083.  14h    DWORD    (big-endian) return code (see #2798)
  8084.  18h    WORD    00h
  8085.  1Ah  8 BYTEs    (big-endian) logical unit ID
  8086.  22h    BYTE    type (00h dequeue, 01h test)
  8087.  23h    DWORD    pointer to CREATE_TP record
  8088. --------N-6803--SF2A00-----------------------
  8089. INT 68 - APPC/PC - CHANGE LOGICAL UNIT
  8090.     AH = 03h subfn 2A00h
  8091.     DS:DX -> control block (see #2831)
  8092. Return: control block updated
  8093.  
  8094. Format of APPC/PC "Change Logical Unit" control block:
  8095. Offset    Size    Description    (Table 2831)
  8096.  00h 12 BYTEs    reserved
  8097.  0Ch    WORD    2A00h (verb "Change Logical Unit")
  8098.  0Eh  6 BYTEs    00h
  8099.  14h    DWORD    (big-endian) return code (see #2798)
  8100.  18h    WORD    00h
  8101.  1Ah  8 BYTEs    (big-endian) logical unit ID
  8102.  22h    DWORD    pointer to CREATE_TP_EXIT routine
  8103.         00000000h queue ALLOCATEs
  8104.         FFFFFFFFh reject incoming ALLOCATEs
  8105.  26h    DWORD    00000000h
  8106.  2Ah    DWORD    pointer to SYSTEM_LOG_EXIT routine, FFFFFFFFh= don't log errors
  8107.  2Eh    DWORD    00000000h
  8108.  32h    BYTE    maximum TPs
  8109.  33h    BYTE    00h stop QUEUE_ALLOCATEs
  8110.         01h resume QUEUE_ALLOCATEs
  8111.  34h    DWORD    pointer to LU_LU_PASSWORD_EXIT routine, FFFFFFFFh = no exit
  8112.  38h    DWORD    00000000h
  8113. --------N-6804-------------------------------
  8114. INT 68 - APPC/PC - TRANSACTION PROCESSING
  8115.     AH = 04h
  8116.     DS:DX -> control block (see #2832)
  8117. Return: control block updated
  8118.  
  8119. Format of APPC/PC control block:
  8120. Offset    Size    Description    (Table 2832)
  8121.  00h 12 BYTEs    reserved
  8122.  0Ch    WORD    verb (action)
  8123.         2500h TP_ENDED
  8124.         2900h TP_VALID
  8125.  0Eh  6 BYTEs    00h
  8126.  14h    DWORD    (big-endian) return code (see #2798)
  8127.  18h    WORD    00h
  8128.  1Ah  8 BYTEs    (big-endian) TP_ID
  8129.  22h    DWORD    -> CREATE_TP record (only if verb = 2900h)
  8130. --------N-6805-------------------------------
  8131. INT 68 - APPC/PC - TRANSFER MESSAGE DATA
  8132.     AH = 05h
  8133.     DS:DX -> control block (see #2833)
  8134. Return: control block updated
  8135.  
  8136. Format of APPC/PC "Transfer Message Data" control block:
  8137. Offset    Size    Description    (Table 2833)
  8138.  00h 12 BYTEs    reserved
  8139.  0Ch    WORD    1C00h (verb "Transfer Message Data")
  8140.  0Eh    BYTE    data type
  8141.         00h user defined
  8142.         01h NMVT
  8143.         02h alert subvectors
  8144.         03h PDSTATS subvectors
  8145.  0Fh  5 BYTEs    00h
  8146.  14h    DWORD    (big-endian) return code (see #2798)
  8147.  18h 12 BYTEs    00h
  8148.  24h    BYTE    flags (see #2834)
  8149.  25h    BYTE    00h
  8150.  26h    WORD    length of data
  8151.  28h  N BYTEs    data
  8152.  
  8153. Bitfields for APPC/PC message transfer flags:
  8154. Bit(s)    Description    (Table 2834)
  8155.  0    don't add correlation subvector
  8156.  1    don't add product set ID subvector
  8157.  2    don't do SYSLOG
  8158.  3    don't send SSCP_PU_SESSION
  8159. SeeAlso: #2833
  8160. --------N-6806-------------------------------
  8161. INT 68 - APPC/PC - CHANGE NUMBER OF SESSIONS
  8162.     AH = 06h
  8163.     DS:DX -> control block (see #2835)
  8164. Return: control block updated
  8165.  
  8166. Format of APPC/PC "Change Number of Sessions" control block:
  8167. Offset    Size    Description    (Table 2835)
  8168.  00h 12 BYTEs    reserved
  8169.  0Ch    WORD    1500h (verb "Change Number of Sessions")
  8170.  0Eh  6 BYTEs    00h
  8171.  14h    WORD    (big-endian) primary return code (see #2811)
  8172.  16h    DWORD    (big-endian) secondary return code (see #2798,#2836)
  8173.  1Ah  8 BYTEs    (big-endian) logical unit ID
  8174.  22h  8 BYTEs    blanks
  8175.  2Ah  8 BYTEs    (big-endian) partner logical unit name
  8176.  32h  8 BYTEs    (big-endian) mode name
  8177.  3Ah    BYTE    bit 7: use MODE_NAME_SELECT_ALL rather than MODE_NAME
  8178.         bit 6: set negotiable values
  8179.  3Bh    BYTE    partner logical unit mode session limit
  8180.  3Ch    BYTE    minimum CONWINNERS_SOURCE
  8181.  3Dh    BYTE    maximum CONWINNERS_TARGET
  8182.  3Eh    BYTE    automatic activation
  8183.  3Fh    BYTE    00h
  8184.  40h    BYTE    flags
  8185.         bit 7: drain target
  8186.         bit 6: drain source
  8187.         bit 5: target responsible, not source
  8188.  
  8189. (Table 2836)
  8190. Values for secondary return code (see also AH=01h/SF=1B00h):
  8191.  0000h    accepted
  8192.  0001h    negotiated
  8193.  0003h    bad logical unit ID
  8194.  0004h    allocation failure, no retry
  8195.  0005h    allocation failure, retry
  8196.  0151h    can't raise limits
  8197.  0153h    all modes must reset
  8198.  0154h    bad SNASVCMG limits
  8199.  0155h    minimum greater than total
  8200.  0156h    mode closed (primary return code = 1)
  8201.     CNOS mode closed (primary return code = 18h)
  8202.  0157h    bad mode name (primary return code = 1)
  8203.     CNOS bad mode name (primary return code = 18h)
  8204.  0159h    reset SNA drains
  8205.  015Ah    single not SRC response
  8206.  015Bh    bad partner logical unit
  8207.  015Ch    exceeds maximum allowed
  8208.  015Dh    change SRC drains
  8209.  015Eh    logical unit detached
  8210.  015Fh    CNOS command race reject
  8211. --------N-6807-------------------------------
  8212. INT 68 - APPC/PC - PASSTHROUGH
  8213.     AH = 07h
  8214.     DS:DX -> control block (format depends on application subsystem)
  8215. Return: control block updated
  8216. SeeAlso: AH=FFh
  8217. ----------684300-----------------------------
  8218. INT 68 U - ??? - INSTALLATION CHECK???
  8219.     AX = 4300h
  8220. Return: AX = F386h if ???
  8221.     ???
  8222. Note:    called by Novell DOS 7.0 EMM386.EXE
  8223. SeeAlso: AX=4400h,INT 41/AX=004Fh
  8224. ----------684400-----------------------------
  8225. INT 68 U - ???
  8226.     AX = 4400h
  8227.     BX = ???
  8228.     CX = ???
  8229.     DX = ???
  8230.     DS:SI = real-mode address of protected-mode GDT
  8231.     ES:DI = real-mode address of protected-mode IDT
  8232. Return: ???
  8233. Note:    called by Novell DOS 7.0 EMM386.EXE if AX=4300h returns AX=F386h
  8234. SeeAlso: AX=4300h
  8235. --------W-6847-------------------------------
  8236. INT 68 - MS Windows debugging kernel - OUTPUT STRING
  8237.     AH = 47h
  8238.     ES:SI -> string
  8239. Notes:    output a string (to inform a debugger of some events)
  8240.     KERNEL outputs "Windows Kernel Entry\r\n" on startup
  8241. SeeAlso: INT 41/AX=0012h
  8242. --------N-68FA-------------------------------
  8243. INT 68 - APPC/PC - ENABLE/DISABLE APPC
  8244.     AH = FAh
  8245.     AL bit 0 = new state (0 enable, 1 disable)
  8246. SeeAlso: AH=FDh,INT 68"Novell"
  8247. --------N-68FB-------------------------------
  8248. INT 68 - APPC/PC - CONVERT
  8249.     AH = FBh
  8250.     DS:DX -> control block (see #2837)
  8251. Return: control block updated
  8252.  
  8253. Format of APPC/PC "CONVERT" control block:
  8254. Offset    Size    Description    (Table 2837)
  8255.  00h 12 BYTEs    reserved
  8256.  0Ch    WORD    1A00h (verb "CONVERT")
  8257.  0Eh  6 BYTEs    00h
  8258.  14h    DWORD    (big-endian) return code
  8259.  18h    BYTE    conversion
  8260.         00h ASCII to EBCDIC
  8261.         01h EBCDIC to ASCII
  8262.  19h    BYTE    character set
  8263.         00h AE
  8264.         01h A
  8265.         02h G
  8266.  1Ah    WORD    length of string to convert
  8267.  1Ch    DWORD    pointer to source
  8268.  20h    DWORD    pointer to target
  8269. --------N-68FC-------------------------------
  8270. INT 68 - APPC/PC - ENABLE/DISABLE MESSAGE TRACING
  8271.     AH = FCh
  8272.     AL = new state
  8273.         00h disable tracing
  8274.         01h enable tracing
  8275.         DX = number of bytes to keep (0=all)
  8276. SeeAlso: AH=FDh,AH=FEh
  8277. --------N-68FD-------------------------------
  8278. INT 68 - APPC/PC - ENABLE/DISABLE API VERB TRACING
  8279.     AH = FDh
  8280.     AL = new tracing state (00h disabled, 01h enabled)
  8281. SeeAlso: AH=FAh,AH=FCh,AH=FEh
  8282. --------N-68FE-------------------------------
  8283. INT 68 - APPC/PC - SET TRACE DESTINATION
  8284.     AH = FEh
  8285.     AL = trace destinations (see #2838)
  8286.     DS:DX -> trace stats record if AL bit 0 set (see #2839)
  8287. SeeAlso: AH=FCh,AH=FDh
  8288.  
  8289. Bitfields for trace destinations:
  8290. Bit(s)    Description    (Table 2838)
  8291.  0    storage (DS:DX -> trace stats record)
  8292.  1    display
  8293.  2    file (trace written to file OUTPUT.PC)
  8294.  3    printer
  8295.  
  8296. Format of APPC/PC Trace Statistics Record:
  8297. Offset    Size    Description    (Table 2839)
  8298.  00h    DWORD    pointer to storage trace buffer
  8299.  04h    WORD    max number of 80-byte records in trace
  8300.  06h    WORD    (high-order byte first!) current record number (must init to 0)
  8301.  08h    DWORD    (high-order byte first!) number of records written (init to 0)
  8302.  0Ch    DWORD    reserved
  8303. Note:    do not move record while trace is active
  8304. --------N-68FF-------------------------------
  8305. INT 68 - APPC/PC - SET PASSTHROUGH
  8306.     AH = FFh
  8307.     DS:DX -> passthrough exit routine
  8308. SeeAlso: AH=07h,INT 68"Novell"
  8309. --------b-69---------------------------------
  8310. INT 69 - Zenith AT BIOS - ???
  8311. Note:    called by INT 09 handler
  8312. --------h-69---------------------------------
  8313. INT 69 C - HP Vectra AT - IRQ17 - KEYBOARD OUTPUT-BUFFER-FULL SERVICE ROUTINE
  8314. SeeAlso: INT 09"IRQ1",INT 68"HP Vectra",INT 6A"HP Vectra"
  8315. --------N-690100-----------------------------
  8316. INT 69 - DECnet DOS CTERM - INSTALLATION CHECK
  8317.     AX = 0100h
  8318. Return: AL = FFh if present
  8319. SeeAlso: AX=010Fh
  8320. --------N-690101-----------------------------
  8321. INT 69 - DECnet DOS CTERM - SEND BYTE
  8322.     AX = 0101h
  8323.     BL = character
  8324.     DX = session handle
  8325. Return: AH >= 80h on error
  8326. SeeAlso: AX=0102h
  8327. --------N-690102-----------------------------
  8328. INT 69 - DECnet DOS CTERM - READ BYTE
  8329.     AX = 0102h
  8330.     DX = session handle
  8331. Return: AH >= 80h on error
  8332.     AH < 80h if successful
  8333.         AL = character
  8334. SeeAlso: AX=0101h
  8335. --------N-690103-----------------------------
  8336. INT 69 - DECnet DOS CTERM - STATUS
  8337.     AX = 0103h
  8338.     DX = session handle
  8339. Return: AH status flags (see #2840)
  8340.     AL = reason code if DECnet error (see #2841)
  8341. SeeAlso: AX=0104h
  8342.  
  8343. Bitfields for DECnet DOS CTERM status flags:
  8344. Bit(s)    Description    (Table 2840)
  8345.  7    session has been aborted
  8346.  6    DECnet error
  8347.  1    trace data available
  8348.  0    receive data available
  8349.  
  8350. (Table 2841)
  8351. Values for reason code:
  8352.  00h    normal disconnect
  8353.  01h    unknown message from host
  8354.  02h    protocol violation from host
  8355.  03h    could not process the initiate message
  8356.  04h    error receiving message from host
  8357.  05h    error sending message to host
  8358.  06h    error checking for message from host
  8359.  07h    remote system does not support CTERM
  8360.  08h    remote system does not support correct protocol version
  8361.  09h    did not receive BIND message from host
  8362.  0Ah    could not send BIND message to host
  8363.  0Bh    no more sessions available
  8364.  0Ch    session does not exist
  8365.  0Dh    not enough memory to complete operation
  8366.  0Eh    connection has broken
  8367. Index:    error codes;DECnet DOS CTERM|DECnet DOS CTERM;error codes
  8368. --------N-690104-----------------------------
  8369. INT 69 - DECnet DOS CTERM - DECnet STATUS
  8370.     AX = 0104h
  8371.     DX = session handle
  8372. Return: AX = reason code (see #2841)
  8373. Note:    use this call when AX=0103h returns a DECnet error
  8374. SeeAlso: AX=0103h
  8375. --------N-690105-----------------------------
  8376. INT 69 - DECnet DOS CTERM - OPEN SESSION
  8377.     AX = 0105h
  8378.     DS:BX -> ASCIZ node name
  8379.     ES:DX -> buffer for session control block (see #2857 at INT 6A/AH=D0h)
  8380. Return: AX <= 0 on error
  8381.     AX > 0 session handle
  8382. SeeAlso: AX=0103h,AX=0106h,AX=010Ah
  8383. --------N-690106-----------------------------
  8384. INT 69 - DECnet DOS CTERM - CLOSE SESSION
  8385.     AX = 0106h
  8386.     DX = session handle
  8387. Return: AH = status
  8388.         00h good close
  8389.         other error code (see #2841)
  8390. SeeAlso: AX=0103h,AX=0105h
  8391. --------N-69010A-----------------------------
  8392. INT 69 - DECnet DOS CTERM - GET SESSION CONTROL BLOCK SIZE
  8393.     AX = 010Ah
  8394. Return: AX = length of session control block in bytes
  8395. SeeAlso: AX=0105h
  8396. --------N-69010B-----------------------------
  8397. INT 69 - DECnet DOS CTERM - GET DECnet SOCKET
  8398.     AX = 010Bh
  8399.     DX = session handle
  8400. Return: AX > 0    DECnet socket for the session
  8401.     AX = 0    no match for handle
  8402. --------N-69010F-----------------------------
  8403. INT 69 - DECnet DOS CTERM - DEINSTALL CTERM
  8404.     AX = 010Fh
  8405. Return: AH = status
  8406.         00h successful uninstall
  8407.         other error code (see #2841)
  8408. Note:    CTERM must have been the last TSR loaded in order to deinstall it
  8409. SeeAlso: AX=0100h
  8410. Index:    uninstall;DECnet DOS CTERM
  8411. --------N-690A-------------------------------
  8412. INT 69 - DECnet DOS 2.1+ - DATA LINK LAYER
  8413.     AH = 0Ah
  8414.     AL = function number (see #2842)
  8415.     ES:BX -> Datalink Communication Block (see #2844)
  8416. Return: AX = status (see #2843)
  8417. SeeAlso: INT 6D"DECnet"
  8418.  
  8419. (Table 2842)
  8420. Values for DECnet DOS Data Link Layer function:
  8421.  00h    initialize
  8422.  01h    open portal
  8423.  02h    close portal
  8424.  03h    enable multicast address
  8425.  04h    disable multicast address
  8426.  05h    transmit
  8427.  06h    request transmit buffer
  8428.  07h    deallocate transmit buffer
  8429.  08h    read channel status
  8430.  09h    read datalink portal list
  8431.  0Ah    read information about a datalink portal
  8432.  0Bh    read and/or clear counters
  8433.  0Ch    request to boot from a network server
  8434.  0Dh    enable Ethernet channel
  8435.  0Eh    disable Ethernet channel
  8436.  0Fh    start MOP/send a System ID message
  8437.  10h    stop MOP
  8438.  11h    get DECPARM
  8439.  12h    set DECPARM
  8440.  13h    external loopback
  8441.  
  8442. (Table 2843)
  8443. Values for DECnet DOS Data Link Layer status:
  8444.  00h    successful
  8445.  01h    hardware failed to initialize
  8446.  02h    channel state was not off (must be off to execute that command)
  8447.  03h    channel state is off (must be on to execute that command)
  8448.  04h    address not set
  8449.  05h    hardware missing
  8450.  06h    buffer too small
  8451.  07h    no more buffers available
  8452.  08h    no more resources available
  8453.  09h    promiscuous receiver active
  8454.  0Ah    non exclusive
  8455.  0Bh    unrecognized portal
  8456.  0Ch    protocol type in use
  8457.  0Dh    not a valid Multicast address
  8458.  0Eh    outstanding calls
  8459.  0Fh    hardware doesn't support receiving bad frames
  8460.  10h    none outstanding
  8461.  11h    no events
  8462.  12h    broken
  8463.  13h    buffer quota exceeded
  8464.  14h    already initialized
  8465.  15h    loopback failure
  8466. Index:    error codes;DECnet DOS|DECnet DOS;error codes
  8467.  
  8468. Format of Datalink Communication Block:
  8469. Offset    Size    Description    (Table 2844)
  8470.  00h    WORD    portal ID
  8471.  02h  6 BYTEs    source address
  8472.  08h  6 BYTEs    destination address
  8473.  0Eh    DWORD    buffer pointer
  8474.  12h    WORD    buffer length
  8475.  14h    WORD    operation
  8476.  16h    BYTE    pad flag (used on open)
  8477.         00h no pad
  8478.         01h pad
  8479.  17h    BYTE    mode flag (used on open)
  8480.         00h 802.3
  8481.         01h Ethernet
  8482.         02h promiscuous
  8483.  18h    DWORD    line status change function
  8484.  1Ch    DWORD    received data function
  8485.  20h    DWORD    transmitted data function
  8486.  24h    BYTE    maximum outstanding transmits/receives
  8487.  25h  2 BYTEs    protocol type
  8488.  27h    WORD    buffers lost
  8489. --------N-694001-----------------------------
  8490. INT 69 - 10NET v5.0 - SYSSVC.COM - ???
  8491.     AX = 4001h
  8492. Return: CF clear
  8493.     AX = 0000h
  8494.     ES:SI -> ???
  8495. Range:    INT 60 to INT 7F, selected by configuration
  8496. Note:    the signature "SYSV" immediately before the interrupt handler serves
  8497.       as the installation check
  8498. SeeAlso: AX=4002h
  8499. Index:    installation check;10NET SYSSVC
  8500. --------N-694002-----------------------------
  8501. INT 69 - 10NET v5.0 - SYSSVC.COM - ???
  8502.     AX = 4002h
  8503.     ???
  8504. Return: ???
  8505. Range:    INT 60 to INT 7F, selected by configuration
  8506. Note:    the signature "SYSV" immediately before the interrupt handler serves
  8507.       as the installation check
  8508. --------N-694101-----------------------------
  8509. INT 69 - 10NET v5.0 - SYSSVC.COM - ???
  8510.     AX = 4101h
  8511. Return: CF clear
  8512.     ES:SI -> ???
  8513. Range:    INT 60 to INT 7F, selected by configuration
  8514. SeeAlso: AX=4102h,AX=4103h,AX=4104h
  8515. --------N-694102-----------------------------
  8516. INT 69 - 10NET v5.0 - SYSSVC.COM - ???
  8517.     AX = 4102h
  8518.     ???
  8519. Return: ???
  8520. --------N-694103-----------------------------
  8521. INT 69 - 10NET v5.0 - SYSSVC.COM - ???
  8522.     AX = 4103h
  8523.     ???
  8524. Return: ???
  8525. --------N-694104-----------------------------
  8526. INT 69 - 10NET v5.0 - SYSSVC.COM - ???
  8527.     AX = 4104h
  8528.     ???
  8529. Return: ???
  8530. --------N-6942-------------------------------
  8531. INT 69 - 10NET v5.0 - SYSSVC.COM - ???
  8532.     AH = 42h
  8533.     AL = function (01h-14h)
  8534.     ???
  8535. Return: ???
  8536. Range:    INT 60 to INT 7F, selected by configuration
  8537. --------N-6943-------------------------------
  8538. INT 69 - 10NET v5.0 - SYSSVC.COM - ???
  8539.     AH = 43h
  8540.     AL = function (01h-05h)
  8541.     ???
  8542. Return: ???
  8543. --------N-6944-------------------------------
  8544. INT 69 - 10NET v5.0 - SYSSVC.COM - ???
  8545.     AH = 44h
  8546.     AL = function (01h-03h)
  8547.     ???
  8548. Return: ???
  8549. Range:    INT 60 to INT 7F, selected by configuration
  8550. --------N-6949-------------------------------
  8551. INT 69 - 10NET v5.0 - SYSSVC.COM - BUG
  8552.     AH = 49h
  8553. Note:    due to a fencepost error, this function branches to hyperspace
  8554. SeeAlso: AX=4001h,AH=FFh
  8555. --------G-696996-----------------------------
  8556. INT 69 - ISR.COM v1.00 - SPECIFY INTERRUPT HANDLER
  8557.     AX = 6996h
  8558.     DS:DX -> interrupt handler or 0000h:0000h to disable
  8559. Return: AX = 9669h
  8560. Program: ISR (Interrupt Service Reflector) is a TSR by Rich Bono which permits
  8561.       a program to provide hardware interrupt handlers even while being
  8562.       debugged with a debugger that swaps interrupt vectors during
  8563.       debugging.
  8564. Note:    the interrupt vector which is to be reflected is set at installation
  8565.       time and cannot be changed
  8566. --------N-69FF-------------------------------
  8567. INT 69 - 10NET v5.0 - SYSSVC.COM - SIGNAL SYSTEM ERROR
  8568.     AH = FFh
  8569. Return: never???
  8570. Desc:    displays "System Error" message and register dump, then halts system
  8571. Range:    INT 60 to INT 7F, selected by configuration
  8572. Notes:    the signature "SYSV" immediately before the interrupt handler serves
  8573.       as the installation check
  8574. SeeAlso: AX=4001h,AH=49h
  8575. --------U-6A---------------------------------
  8576. INT 6A - OPTHELP.COM
  8577. Program: OPTHELP is an optionally-resident help system for SLR Systems's OPTASM
  8578.       assembler
  8579. Range:    INT 60h to INT 7Fh, selected by configuration
  8580. --------N-6A---------------------------------
  8581. INT 6A - DECnet DOS - LOCAL AREA TRANSPORT PROGRAM
  8582. Note:    the installation check consists of testing for a signature area
  8583.       immediately preceding the interrupt handler (see #2845)
  8584. SeeAlso: AH=01h/DH=FFh,INT 6B"DECnet",INT 6D"DECnet"
  8585. Index:    installation check;DECnet DOS Local Area Transport
  8586.  
  8587. Format of DECnet DOS signature area:
  8588. Offset    Size    Description    (Table 2845)
  8589.  -5    BYTE    major version number
  8590.  -4    BYTE    minor version number
  8591.  -3   3 BYTEs    signature (ASCII "LAT")
  8592. --------h-6A---------------------------------
  8593. INT 6A C - HP Vectra AT - IRQ18 - RESERVED HARDWARE INTERRUPT
  8594. SeeAlso: INT 0A"IRQ0",INT 69"HP Vectra",INT 6B"HP Vectra"
  8595. --------N-6A0000-----------------------------
  8596. INT 6A U - Super-TCP DOS TSR Kernel v3.57 - INSTALLATION CHECK
  8597.     AX = 0000h
  8598. Return: AX = 4357h ('CW')
  8599. Program: Super-TCP is a TCP/IP protocol stack by Frontier Technologies Corp.
  8600. Note:    an alternate installation check is to test for the ASCIZ signature
  8601.       "FTC Super-TCP" three bytes past the interrupt handler
  8602. SeeAlso: AX=0001h,AX=0002h,AX=000Fh,AX=0010h,INT 21/AH=3Fh"BW-TCP"
  8603. SeeAlso: INT 61"PCTCP",INT 62/AH=00h"ETHDEV"
  8604. --------N-6A0001-----------------------------
  8605. INT 6A U - Super-TCP DOS TSR Kernel v3.57 - ???
  8606.     AX = 0001h
  8607.     BH = function number
  8608.         01h ???
  8609.         DS:SI -> ??? 24-byte record1 (see #2847)
  8610.         ES:DI -> buffer containing ???
  8611.         02h ???
  8612.         DS:SI -> ??? 18-byte record2 (see #2848)
  8613.         ES:DI -> buffer containing ???
  8614.         04h ???
  8615.         BL = subfunction
  8616.             01h
  8617.             DS:SI -> ??? 28-byte record3 (see #2849)
  8618.             ES:DI -> buffer containing ???
  8619.             02h
  8620.             DS:SI -> ??? 28-byte record3 (see #2849)
  8621.             ES:DI -> buffer containing ???
  8622.             03h
  8623.             DS:SI -> ??? 28-byte record3 (see #2849)
  8624.             else Return: AX = 0005h
  8625.         05h ???
  8626.         DS:SI -> ??? 20-byte record4 (see #2850)
  8627.         ES:DI -> buffer containing ???
  8628.         06h ???
  8629.         BL = subfunction
  8630.             01h
  8631.             DS:SI -> ??? 40-byte record5 (see #2851)
  8632.             02h
  8633.             DS:SI -> ??? 20-byte record6 (see #2852)
  8634.             ES:DI -> ???
  8635.             03h
  8636.             DS:SI -> ??? 20-byte record6 (see #2852)
  8637.             04h
  8638.             DS:SI -> ??? 46-byte record7 (see #2853)
  8639.             else Return: AX = 0005h
  8640.         11h ???
  8641.         DS:SI -> ??? 28-byte record8 (see #2854)
  8642.         ES:DI -> ???
  8643. Return: AX = function status (see #2846)
  8644. SeeAlso: AX=0000h
  8645.  
  8646. (Table 2846)
  8647. Values for Super-TCP function status:
  8648.  0000h    successful
  8649.  0005h    unsupported function
  8650.  000Ah    out of memory
  8651.  
  8652. Format of record1:
  8653. Offset    Size    Description    (Table 2847)
  8654.  00h  4 BYTEs    ???
  8655.  04h    WORD    size of ES:DI buffer
  8656.  06h 18 BYTEs    ???
  8657.  
  8658. Format of record2:
  8659. Offset    Size    Description    (Table 2848)
  8660.  00h  4 BYTEs    ???
  8661.  04h    WORD    size of ES:DI buffer
  8662.  06h 12 BYTEs    ???
  8663.  
  8664. Format of record3:
  8665. Offset    Size    Description    (Table 2849)
  8666.  00h  2 BYTEs    ???
  8667.  02h    WORD    ???
  8668.  04h    WORD    size of ES:DI buffer
  8669.  06h    WORD    ???
  8670.  08h    WORD    operation number (for function 0401h)
  8671.  0Ah    DWORD    -> ???
  8672.  0Eh    WORD    (ret) ???
  8673.  10h 12 BYTEs    ???
  8674.  
  8675. Format of record4:
  8676. Offset    Size    Description    (Table 2850)
  8677.  00h  4 BYTEs    ???
  8678.  04h    WORD    size of ES:DI buffer
  8679.  06h 14 BYTEs    ???
  8680.  
  8681. Format of record5:
  8682. Offset    Size    Description    (Table 2851)
  8683.  00h    BYTE    operation??? (00h-07h)
  8684.  01h    BYTE    ???
  8685.  02h    WORD    (ret) ???
  8686.  04h    DWORD    -> ???
  8687.  08h  4 BYTEs    ???
  8688.  0Ch    DWORD    -> ??? or 0000h:0000h
  8689.  10h 16 BYTEs    ???
  8690.  20h    DWORD    ???
  8691.  24h  4 BYTEs    ???
  8692.  
  8693. Format of record6:
  8694. Offset    Size    Description    (Table 2852)
  8695.  00h  4 BYTEs    ???
  8696.  04h    WORD    size of ES:DI buffer
  8697.  06h 14 BYTEs    ???
  8698.  
  8699. Format of record7:
  8700. Offset    Size    Description    (Table 2853)
  8701.  00h    WORD    ???
  8702.  02h    WORD    ???
  8703.  04h    WORD    ???
  8704.  06h 40 BYTEs    ???
  8705.  
  8706. Format of record8:
  8707. Offset    Size    Description    (Table 2854)
  8708.  00h  4 BYTEs    ???
  8709.  04h    WORD    size of ES:DI buffer
  8710.  06h  6 BYTEs    ???
  8711.  0Ch    WORD    (ret) ???
  8712.  0Eh    WORD    operation??? (01h-03h)
  8713.  10h 12 BYTEs    ???
  8714. --------N-6A0002-----------------------------
  8715. INT 6A U - Super-TCP DOS TSR Kernel v3.57 - ???
  8716.     AX = 0002h
  8717.     BX = ??? (zero/nonzero)
  8718.     CX = ??? identifier (see AX=0004h)
  8719.     DS:SI -> 40-byte buffer for ??? or 0000h:0000h
  8720.     ES:DI -> buffer for ??? or 0000h:0000h
  8721. Return: AX = 0000h (successful) ???
  8722.     BL = ???
  8723.     BH = ???
  8724.     CX = ???
  8725.     DX = ???
  8726. --------N-6A0003-----------------------------
  8727. INT 6A U - Super-TCP DOS TSR Kernel v3.57 - GET ??? DATA AREA
  8728.     AX = 0003h
  8729. Return: CX:DX -> data area (see #2855)
  8730.  
  8731. Format of Super-TCP data area:
  8732. Offset    Size    Description    (Table 2855)
  8733.  00h  2 BYTEs    ???
  8734.  02h    DWORD    original INT 6A vector
  8735.  06h  2 BYTEs    ???
  8736.  08h 96 BYTEs    array of 16 6-byte ???
  8737.  68h    WORD    number of elements of above array in use
  8738.  6Ah    WORD    ???
  8739.     ???
  8740. --------N-6A0004-----------------------------
  8741. INT 6A U - Super-TCP DOS TSR Kernel v3.57 - ALLOCATE ???
  8742.     AX = 0004h
  8743.     CX = size in ???
  8744. Return: AX = 0000h (successful)
  8745.     CX = DX = ???
  8746. SeeAlso: AX=0005h,AX=000Fh
  8747. --------N-6A0005-----------------------------
  8748. INT 6A U - Super-TCP DOS TSR Kernel v3.57 - FREE/CLOSE ???
  8749.     AX = 0005h
  8750.     CX = ??? identifier (from AX=0004h)
  8751. Return: AX = status (0000h successful, FFFFh failed)
  8752. SeeAlso: AX=0004h,AX=000Fh
  8753. --------N-6A000F-----------------------------
  8754. INT 6A U - Super-TCP DOS TSR Kernel v3.57 - FREE/CLOSE ALL ???
  8755.     AX = 000Fh
  8756. Return: AX = 0000h (successful)
  8757. SeeAlso: AX=0000h,AX=0004h,AX=0005h
  8758. --------N-6A0010-----------------------------
  8759. INT 6A U - Super-TCP DOS TSR Kernel v3.57 - UNINSTALL
  8760.     AX = 0010h
  8761. Return: AX = status
  8762.         0000h successful
  8763.         0002h can't uninstall, interrupt vector hooked by another program
  8764. Program: Super-TCP is a TCP/IP protocol stack by Frontier Technologies Corp.
  8765. Note:    if AX is not one of the values listed here on entry, Super-TCP
  8766.       returns AX=FFFEh
  8767. SeeAlso: AX=0000h
  8768. --------N-6A01--DHFF-------------------------
  8769. INT 6A - DECnet DOS LOCAL AREA TRANSPORT - SEND BYTE
  8770.     AH = 01h
  8771.     DH = FFh
  8772.     AL = character
  8773.     DL = handle
  8774. Return: AH >= 80h on error
  8775. SeeAlso: AH=02h
  8776. --------N-6A02--DHFF-------------------------
  8777. INT 6A - DECnet DOS LOCAL AREA TRANSPORT - READ BYTE
  8778.     AH = 02h
  8779.     DH = FFh
  8780.     DL = handle
  8781. Return: AH < 80h if successful
  8782.         AL = character
  8783.     AH >= 80h on error
  8784. SeeAlso: AH=01h
  8785. --------N-6A03--DHFF-------------------------
  8786. INT 6A - DECnet DOS LOCAL AREA TRANSPORT - STATUS
  8787.     AH = 03h
  8788.     DH = FFh
  8789.     DL = handle
  8790. Return: AH = status flags (see #2856)
  8791.  
  8792. Bitfields for DECnet DOS LAT status flags:
  8793. Bit(s)    Description    (Table 2856)
  8794.  5    transmit buffer empty
  8795.  3    session in start state
  8796.  2    session not active
  8797.  1    unable to queue transmit data
  8798.  0    receive data available
  8799. --------N-6AD0--DHFF-------------------------
  8800. INT 6A - DECnet DOS LOCAL AREA TRANSPORT - OPEN SESSION
  8801.     AH = D0h
  8802.     DH = FFh
  8803.     AL = password flag
  8804.         FFh no password
  8805.         0Fh password at ES:DI
  8806.     ES:BX -> LAT session control block (see #2857)
  8807.     ES:DI -> 16-byte blank-padded password (optional)
  8808. Return: AH = 00h success
  8809.         DL = handle
  8810. SeeAlso: AX=D000h
  8811.  
  8812. Format of LAT Session Control Block:
  8813. Offset    Size    Description    (Table 2857)
  8814.  00h 18 BYTEs    service name
  8815.  12h 18 BYTEs    node name (future use)
  8816.  24h 18 BYTEs    port name (future use)
  8817.  36h    DWORD    -> session stopped post routine
  8818.  3Ah    DWORD    -> service table overflow post routine
  8819.  3Eh    DWORD    -> transmit post routine
  8820.  42h    DWORD    -> receive post routine
  8821.  46h    WORD    session status
  8822.         04h circuit failure
  8823.         08h stop slot received
  8824. ---LAT v???---
  8825.  48h    WORD    slot state (LAT driver use)
  8826.  4Ah    WORD    local credits (LAT driver use)
  8827.  4Ch    DWORD    -> VCB (LAT driver use)
  8828.  50h    WORD    backward slot (LAT driver use)
  8829.  52h    WORD    forward slot (LAT driver use)
  8830.  54h    WORD    remote slot ID (LAT driver use)
  8831.  56h    WORD    local slot ID (LAT driver use)
  8832.  58h    WORD    slot byte count (LAT driver use)
  8833.  5Ah    BYTE    remote credits (LAT driver use)
  8834.  5Bh 255 BYTEs    transmitted data slot
  8835. 15Ah    BYTE    number of receive data slots (4 recommended)
  8836. 15Bh    BYTE    number of occupied slots
  8837. 15Ch    BYTE    index of next receive slot to use
  8838. 15Dh    BYTE    index of current receive slot
  8839. 15Eh    WORD    pointer to first received character
  8840. 160h  N WORDs    pointers to receive slots (buffers); each is 259 bytes
  8841.      259N BYTEs    buffers
  8842. Note:    set post routines to 0000h:0000h if polled operation will be used
  8843. ---LAT v4.1.17---
  8844.  48h    WORD    session state (LAT driver use)
  8845.  4Ah    BYTE    local credits (LAT driver use)
  8846.  4Bh    DWORD    -> VCB (LAT driver use)
  8847.  4Fh    WORD    backward slot (LAT driver use)
  8848.  51h    WORD    forward slot (LAT driver use)
  8849.  53h    BYTE    remote slot ID (LAT driver use)
  8850.  54h    BYTE    local slot ID (LAT driver use)
  8851.  55h    BYTE    slot byte count (LAT driver use)
  8852.  56h    BYTE    remote credits (LAT driver use)
  8853.  57h 255 BYTEs    transmitted data slot
  8854. 156h    BYTE    number of receive data slots (4 recommended)
  8855. 157h    BYTE    number of occupied slots
  8856. 158h    BYTE    index of next receive slot to use
  8857. 159h    BYTE    index of current receive slot
  8858. 15Ah    WORD    pointer to first received character
  8859. 15Ch  N WORDs    pointers to receive slots (buffers); each is 259 bytes
  8860.      259N BYTEs    buffers
  8861. Note:    set post routines to 0000h:0000h if polled operation will be used
  8862. --------N-6AD000DHFF-------------------------
  8863. INT 6A - DECnet DOS LOCAL AREA TRANSPORT - CLOSE SESSION
  8864.     AX = D000h
  8865.     DH = FFh
  8866.     DL = handle
  8867. Return: AX = status (see #2858)
  8868. SeeAlso: AH=D0h
  8869.  
  8870. (Table 2858)
  8871. Values for DECnet DOS LAT function status:
  8872.  0000h    successful
  8873.  0001h    no such session
  8874.  0002h    session not running, try again later
  8875. --------N-6AD100DHFF-------------------------
  8876. INT 6A - DECnet DOS LOCAL AREA TRANSPORT - SEND BREAK
  8877.     AX = D100h
  8878.     DH = FFh
  8879.     DL = handle
  8880. Return: AX = 0000h if successful
  8881.     AH bit 7 set if unable to send break
  8882. --------N-6AD300DHFF-------------------------
  8883. INT 6A - DECnet DOS LOCAL AREA TRANSPORT - RESET LAT COUNTERS
  8884.     AX = D300h
  8885.     DH = FFh
  8886. SeeAlso: AX=D400h
  8887. --------N-6AD400DHFF-------------------------
  8888. INT 6A - DECnet DOS LOCAL AREA TRANSPORT - COPY LAT COUNTERS
  8889.     AX = D400h
  8890.     DH = FFh
  8891.     CX = buffer size
  8892.     ES:BX -> buffer for LAT counters
  8893. Return: AX = status
  8894.         0000h counters copied into buffer
  8895.         FFFFh buffer too small
  8896. SeeAlso: AX=D300h
  8897. --------N-6AD500DHFF-------------------------
  8898. INT 6A - DECnet DOS LOCAL AREA TRANSPORT - GET NEXT LAT SERVICE NAME
  8899.     AX = D500h
  8900.     DH = FFh
  8901.     ES:BX -> 17-byte buffer for name
  8902. Return: AH = 00h if successful
  8903.        ES:BX buffer filled
  8904.     AX = FFFFh if end of table or no name available
  8905. Notes:    use this function to get the names of the hosts on the network
  8906.     successive calls are necessary to get all names
  8907. SeeAlso: AX=D600h
  8908. --------N-6AD600DHFF-------------------------
  8909. INT 6A - DECnet DOS LOCAL AREA TRANSPORT - LAT SERVICE TABLE RESET
  8910.     AX = D600h
  8911.     DH = FFh
  8912. Return: AX = number of service table entries
  8913.     BX = status
  8914.         0000h service table has not overflowed
  8915.         FFFFh service table has overflowed
  8916. SeeAlso: AX=D500h
  8917. --------N-6B---------------------------------
  8918. INT 6B - DECnet DOS - PORT DRIVER
  8919. Note:    the installation check consists of testing for a signature area
  8920.       (see #2859) immediately preceding the interrupt handler
  8921. SeeAlso: INT 6A"DECnet",INT 6C"DECnet"
  8922. Index:    installation check;DECnet DOS Port Driver
  8923.  
  8924. Format of DECnet DOS signature area:
  8925. Offset    Size    Description    (Table 2859)
  8926.  -5    BYTE    major version number
  8927.  -4    BYTE    minor version number
  8928.  -3   3 BYTEs    signature (ASCII "PDV")
  8929. --------v-6B---------------------------------
  8930. INT 6B - VIRUS - "Saddam" - ORIGINAL INT 21h VECTOR
  8931. SeeAlso: INT 21/AX=FFFFh,INT 61"VIRUS",INT 70"VIRUS"
  8932. --------h-6B---------------------------------
  8933. INT 6B C - HP Vectra AT - IRQ19 - RESERVED HARDWARE INTERRUPT
  8934. SeeAlso: INT 0B"IRQ0",INT 6A"HP Vectra",INT 6C"HP Vectra"
  8935. --------S-6B0000-----------------------------
  8936. INT 6B - Novell NASI/NACS, Ungermann-Bass Net One SERIAL I/O - BUFFERED WRITE
  8937.     AX = 0000h
  8938.     CX = length
  8939.     ES:BX -> buffer
  8940. Return: CX = number of bytes written
  8941. Program: NASI is Novell's NetWare Asynchronous Services Interface (purchased
  8942.       from Network Products Corp, who call it NCSI) which runs on
  8943.       workstations; NACS is the NetWare Asynchronous Communications
  8944.       Services module which runs on servers
  8945. Notes:    the installation check consists of testing for the signature string
  8946.       "NCSI" three bytes past the interrupt handler; see also AH=02h.
  8947.       As of version 3.0, Novell's NASI can be distinguished from NPC's
  8948.       NCSI by the presence of an 'A' immediately following the signature
  8949.     this function is also supported by TelAPI, NPC NCSI, and Connection
  8950.       Manager CLIENT.EXE; for TelAPI, nonzero values in AL specify a
  8951.       connection ID
  8952.     Connection Manager returns CF set/AL=FFh if called while an INT 6B
  8953.       call is already in progress
  8954. SeeAlso: AX=0100h,AH=18h,INT 14/AH=19h,INT 14/AH=E3h
  8955. --------S-6B0100-----------------------------
  8956. INT 6B - Novell NASI/NACS, Ungermann-Bass Net One SERIAL I/O - BUFFERED READ
  8957.     AX = 0100h
  8958.     CX = length of buffer
  8959.     ES:BX -> buffer
  8960. Return: CX = number of bytes read
  8961. Note:    also supported by TelAPI and NPC NCSI; for TelAPI, nonzero values in
  8962.       AL specify a connection ID
  8963. SeeAlso: AX=0000h,AH=19h,INT 14/AH=18h,INT 14/AH=E2h,INT 14/AX=FF02h
  8964. --------S-6B02-------------------------------
  8965. INT 6B - Novell NASI/NACS, Ungermann-Bass Net One SERIAL I/O - INSTALL CHECK
  8966.     AH = 02h
  8967.     AL nonzero
  8968. Return: AL = 00h if present and OK
  8969. Note:    this function is also supported by TelAPI and NPC NCSI
  8970. SeeAlso: AX=0700h
  8971. --------S-6B0600-----------------------------
  8972. INT 6B - Novell NASI/NACS, Ungermann-Bass Net One SERIAL I/O - CONTROL
  8973.     AX = 0600h
  8974.     CX = command
  8975.         02h send break
  8976.         04h disconnect
  8977.         06h hold
  8978. Return: CF clear if successful
  8979.         AL = 00h
  8980.     CF set on error
  8981.         AX < 0
  8982. Note:    this function is also supported by TelAPI and NPC NCSI
  8983. --------S-6B0700-----------------------------
  8984. INT 6B - Novell NASI/NACS, Ungermann-Bass Net One SERIAL I/O - GET STATUS
  8985.     AX = 0700h
  8986. Return: CH <> 00h if connection active
  8987. Notes:    this function is also supported by TelAPI and NPC NCSI
  8988.     Novell TelAPI returns CX=FF01h and CF clear
  8989. SeeAlso: AH=02h,AH=10h
  8990. --------N-6B08-------------------------------
  8991. INT 6B - TelAPI - CHECK FOR BREAK SIGNAL
  8992.     AH = 08h
  8993.     AL = circuit number
  8994. Return: CF clear if no breaks
  8995.         AL = 00h
  8996.         CX = 0000h
  8997.     CF set if one or more breaks received
  8998. Note:    this function also clears ??? flag
  8999. SeeAlso: INT 14/AX=FF00h
  9000. --------S-6B10-------------------------------
  9001. INT 6B - NPC NCSI EXTENDED SERIAL I/O - GET STATUS
  9002.     AH = 10h
  9003.     AL = connection ID (Novell TELAPI.EXE)
  9004.     CX = ???
  9005. Return: CF clear if successful
  9006.         CL = ???
  9007.         CH = ???
  9008.     CF set on error
  9009.     ???
  9010. Notes:    this function is also supported by TelAPI
  9011.     when shelled out to an external protocol from Novell NASI, the circuit
  9012.       whose status indicates that it is connected is the currently active
  9013.       circuit
  9014. SeeAlso: AX=0700h,AH=12h,AH=1Fh
  9015. --------S-6B11--DX0001-----------------------
  9016. INT 6B - NPC NCSI EXTENDED SERIAL I/O - ALLOCATE A VIRTUAL CIRCUIT
  9017.     AH = 11h
  9018.     DX = 0001h
  9019.     AL = 00h
  9020.     ES:BX -> service name string (8 characters, blank-padded)
  9021. Return: CF clear if successful
  9022.         AL = virtual circuit number allocated (01h for Novell TELAPI.EXE)
  9023.         CL = ??? (01h for Novell TELAPI.EXE)
  9024.         CH = ??? (01h for Novell TELAPI.EXE)
  9025.     CF set on error
  9026.         ???
  9027. Note:    this function is also supported by TelAPI
  9028. SeeAlso: AH=12h,AH=15h,AH=16h,AH=17h,AH=18h
  9029. --------S-6B12-------------------------------
  9030. INT 6B - NPC NCSI EXTENDED SERIAL I/O - VIRTUAL CIRCUIT STATUS
  9031.     AH = 12h
  9032.     AL = virtual circuit number
  9033.     CL = ???
  9034.     ES:BX -> ???
  9035. Return: ???
  9036. Note:    this function is also supported by TelAPI
  9037. SeeAlso: AH=10h,AH=15h,AH=1Ah,AH=1Bh,AH=1Fh
  9038. --------S-6B13-------------------------------
  9039. INT 6B - NPC NCSI EXTENDED SERIAL I/O - SET/RETRIEVE REQUEST/REPLY SERVICE NAME
  9040.     AH = 13h
  9041.     AL = virtual circuit number
  9042.     CL = direction (00h get, nonzero set)
  9043.     ES:BX -> buffer for/containing service name
  9044. Return: ???
  9045. Note:    this function is also supported by TelAPI
  9046. SeeAlso: AH=14h,AH=15h
  9047. --------S-6B14-------------------------------
  9048. INT 6B - NPC NCSI EXTENDED SERIAL I/O - SET/RETRIEVE SERVICE ADDRESS
  9049.     AH = 14h
  9050.     AL = virtual circuit number
  9051.     ES:BX -> buffer for/containing service address
  9052. Return: ???
  9053. Note:    this function is also supported by TelAPI, which only supports
  9054.       retrieving the address
  9055. SeeAlso: AH=13h,AH=15h,AH=21h
  9056. --------S-6B15-------------------------------
  9057. INT 6B - NPC NCSI EXTENDED SERIAL I/O - SET/RETRIEVE VIRTUAL CIRCUIT CONFIG
  9058.     AH = 15h
  9059.     AL = virtual circuit number
  9060.     CL = direction (00h get, nonzero set)
  9061.     ES:BX -> buffer for/containing virtual circuit config (see #2860)
  9062. Return: ES:BX buffer filled
  9063. Note:    this function is also supported by TelAPI
  9064. SeeAlso: AH=13h"NCSI",AH=14h"NCSI"
  9065.  
  9066. Format of virtual circuit configuration:
  9067. Offset    Size    Description    (Table 2860)
  9068.  00h    WORD    buffer length
  9069.  02h    WORD    port ID
  9070.  04h    WORD    receive rate
  9071.  06h    WORD    receive word length
  9072.  08h    WORD    receive stop bits
  9073.  0Ah    WORD    receive parity
  9074.  0Ch    WORD    transmit rate
  9075.  0Eh    WORD    transmit word length
  9076.  10h    WORD    transmit stop bits
  9077.  12h    WORD    transmit parity
  9078.  14h    WORD    DTR
  9079.  16h    WORD    RTS
  9080. --------S-6B16-------------------------------
  9081. INT 6B - NPC NCSI EXTENDED SERIAL I/O - LOG AND/OR INITIALIZE VIRTUAL CIRCUIT
  9082.     AH = 16h
  9083.     AL = virtual circuit number
  9084.     CL = ??? switch (00h, ???)
  9085. Return: CF clear if successful
  9086.         AL = virtual circuit number
  9087.     CF set on error
  9088.         ???
  9089. Note:    this function is also supported by TelAPI, which always returns CF
  9090.       clear and AL=00h
  9091. SeeAlso: AH=11h,AH=12h,AH=17h
  9092. --------S-6B17-------------------------------
  9093. INT 6B - NPC NCSI EXTENDED SERIAL I/O - DISCONNECT A VIRTUAL CIRCUIT
  9094.     AH = 17h
  9095.     AL = virtual circuit number
  9096. Return: CF clear if successful
  9097.     CF set on error
  9098.     ???
  9099. Note:    this function is also supported by TelAPI, which always returns CF
  9100.       clear and AL=00h
  9101. SeeAlso: AH=11h,AH=16h
  9102. --------S-6B18-------------------------------
  9103. INT 6B - NPC NCSI EXTENDED SERIAL I/O - WRITE DATA ON A VIRTUAL CIRCUIT
  9104.     AH = 18h
  9105.     AL = virtual circuit number
  9106.     CX = number of characters to send
  9107.     ES:BX -> buffer containing characters to be sent
  9108. Return: CF clear if successful
  9109.     CF set on error
  9110.     ???
  9111. Note:    this function is also supported by TelAPI, which always returns CF
  9112.       clear and AL=30h
  9113. SeeAlso: AX=0000h,AH=12h,AH=19h
  9114. --------S-6B19-------------------------------
  9115. INT 6B - NPC NCSI EXTENDED SERIAL I/O - READ DATA ON A VIRTUAL CIRCUIT
  9116.     AH = 19h
  9117.     AL = virtual circuit number
  9118.     CX = number of characters to read
  9119.     ES:BX -> buffer for received characters
  9120. Return: CX = 0000h if failed
  9121.     CX = nonzero (possibly number of characters received) if successful
  9122. Note:    this function is also supported by TelAPI
  9123. SeeAlso: AX=0100h,AH=12h,AH=18h
  9124. --------S-6B1A-------------------------------
  9125. INT 6B - NPC NCSI EXTENDED SERIAL I/O - RECEIVE STATUS
  9126.     AH = 1Ah
  9127.     ???
  9128. Return: ???
  9129. SeeAlso: AH=12h,AH=1Bh
  9130. --------S-6B1B-------------------------------
  9131. INT 6B - NPC NCSI EXTENDED SERIAL I/O - TRANSMIT STATUS
  9132.     AH = 1Bh
  9133.     ???
  9134. Return: ???
  9135. SeeAlso: AH=12h,AH=1Ah
  9136. --------S-6B1C-------------------------------
  9137. INT 6B - NPC NCSI EXTENDED SERIAL I/O - CLEAR RECEIVE BUFFER
  9138.     AH = 1Ch
  9139.     AL = circuit number
  9140. Return: nothing
  9141. SeeAlso: AH=1Dh"NCSI",AH=1Eh"NCSI"
  9142. --------S-6B1D-------------------------------
  9143. INT 6B - NPC NCSI EXTENDED SERIAL I/O - TRANSMIT BUFFER CONTROL
  9144.     AH = 1Dh
  9145.     ???
  9146. Return: ???
  9147. SeeAlso: AH=1Ch,AH=1Eh
  9148. --------S-6B1E-------------------------------
  9149. INT 6B - NPC NCSI EXTENDED SERIAL I/O - ISSUE CONTROL REQUEST
  9150.     AH = 1Eh
  9151.     ???
  9152. Return: ???
  9153. SeeAlso: AH=1Ch,AH=1Dh
  9154. --------S-6B1F-------------------------------
  9155. INT 6B - NPC NCSI EXTENDED SERIAL I/O - EXTERNAL STATUS
  9156.     AH = 1Fh
  9157.     ???
  9158. Return: ???
  9159. SeeAlso: AH=10h,AH=12h
  9160. --------S-6B20-------------------------------
  9161. INT 6B - Connection Manager CLIENT.EXE - ???
  9162.     AH = 20h
  9163.     ???
  9164. Return: ???
  9165. Program: Connection Manager by Softwarehouse Corp. permits the sharing of
  9166.       serial ports over an IPX or NetBIOS-based network
  9167. Note:    CLIENT.EXE returns CF set/AL=F9h if AH is not 00h to 21h on entry
  9168. --------S-6B21-------------------------------
  9169. INT 6B - NPC NCSI EXTENDED SERIAL I/O - QUERY NAME SERVICE
  9170.     AH = 21h
  9171.     AL = virtual circuit number
  9172.     CL = ??? (00h or 01h)
  9173.     ES:BX -> buffer for service name structure (see #2861)
  9174. Return: CF clear if successful
  9175.         ES:BX buffer filled
  9176.     CF set on error
  9177. Notes:    a program should call this function after allocating a virtual circuit
  9178.       and check that the general name matches the requested service
  9179.     prior to version 3.0, Novell's NASI returned the first available port;
  9180.       v3.0+ returns the first port found--check the returned status to
  9181.       determine whether the port is available
  9182. SeeAlso: AH=14h"NCSI"
  9183.  
  9184. Format of NCSI service name structure:
  9185. Offset    Size    Description    (Table 2861)
  9186.  00h    WORD    buffer length
  9187.  02h  8 BYTEs    service name
  9188.  0Ah  8 BYTEs    general name
  9189.  12h  8 BYTEs    specific name
  9190.  1Ah  4 BYTEs    ???
  9191. ---Novell NASI v3.0+ ---
  9192.  1Eh    BYTE    port number
  9193.  1Fh    BYTE    port status
  9194.         00h idle (available)
  9195.         01h allocated (available)
  9196.         02h connected
  9197.         03h on hold
  9198. ----------6B6B-------------------------------
  9199. INT 6B - Tandy SCHOOLMATE PLUS - API
  9200.     AH = 6Bh
  9201.     AL = E0h to FFh
  9202. Note:    details not yet available
  9203. ----------6C---------------------------------
  9204. INT 6C - system resume vector (CONVERTIBLE)
  9205. ----------6C---------------------------------
  9206. INT 6C - DOS 3.2 Realtime Clock update
  9207. --------N-6C---------------------------------
  9208. INT 6C - DECnet DOS network scheduler
  9209. Notes:    the installation check consists of testing for a signature area
  9210.       immediately preceding the interrupt handler (see #2862)
  9211.     also supported by DEC Pathworks for DOS
  9212. SeeAlso: INT 6B"DECnet",INT 6D"DECnet",INT 6E"DECnet"
  9213. Index:    installation check;DECnet DOS scheduler
  9214.  
  9215. Format of DECnet DOS signature area:
  9216. Offset    Size    Description    (Table 2862)
  9217.  -5    BYTE    major version number
  9218.  -4    BYTE    minor version number
  9219.  -3   3 BYTEs    signature (ASCII "SCH")
  9220. --------h-6C---------------------------------
  9221. INT 6C C - HP Vectra AT - IRQ20 - HP-HIL CONTROLLER INTERRUPT
  9222. SeeAlso: INT 0C"IRQ0",INT 6B"HP Vectra",INT 6D"HP Vectra"
  9223. --------V-6D---------------------------------
  9224. INT 6D - VIDEO - many VGA - VIDEO BIOS ENTRY POINT
  9225. Desc:    points at the original INT 10 entry point set up by the VGA BIOS
  9226. Note:    used by IBM, ATI VGA Wonder, Paradise, Video7, and NCR, and many others
  9227. SeeAlso: INT 10
  9228. --------V-6D---------------------------------
  9229. INT 6D - Trident SVGA - VIDEO BIOS HANDLER
  9230. Note:    the BIOS INT 10 handler on various Trident VGA cards consists merely
  9231.       of a call to INT 6D followed by an IRET.
  9232. --------N-6D---------------------------------
  9233. INT 6D - DECnet DOS (before 2.1) - DATA LINK LAYER PROGRAM
  9234.     AH = function
  9235.     ???
  9236. Return: ???
  9237. Note:    the installation check consists of testing for a signature area
  9238.       immediately preceding the interrupt handler (see #2863)
  9239. SeeAlso: INT 69/AH=0Ah,INT 6C"DECnet",INT 6E"DECnet"
  9240. Index:    installation check;DECnet DOS Data Link Layer
  9241.  
  9242. Format of DECnet DOS signature area:
  9243. Offset    Size    Description    (Table 2863)
  9244.  -5    BYTE    major version number
  9245.  -4    BYTE    minor version number
  9246.  -3   3 BYTEs    signature (ASCII "DLL")
  9247. --------h-6D---------------------------------
  9248. INT 6D C - HP Vectra AT - IRQ21 - RESERVED HARDWARE INTERRUPT
  9249. SeeAlso: INT 0D"IRQ0",INT 6C"HP Vectra",INT 6E"HP Vectra"
  9250. --------N-6E---------------------------------
  9251. INT 6E - DECnet DOS - DECnet NETWORK PROCESS API
  9252. Notes:    this is the main DECnet DOS access, and is described in Digital manual
  9253.       AA-EB46B-TV ("DECnet-DOS Programmer's Reference Manual")
  9254.     there is a signature/data area immediately prior to the interrupt
  9255.       handler which may be used as an installation check (see #2864)
  9256. Index:    installation check;DECnet DOS
  9257.  
  9258. Format of DECnet DOS signature area:
  9259. Offset    Size    Description    (Table 2864)
  9260.  -5    BYTE    major version number
  9261.  -4    BYTE    minor version number
  9262.  -3   3 BYTEs    signature (ASCII "DNP")
  9263. --------h-6E---------------------------------
  9264. INT 6E C - HP Vectra AT - IRQ22 - RESERVED HARDWARE INTERRUPT
  9265. SeeAlso: INT 0E"IRQ0",INT 6D"HP Vectra",INT 6F/AH=00h"HP Vectra"
  9266. --------!---Section--------------------------
  9267.